From d0ae76214c647d44c45647263661622128073be6 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 6 Jun 2025 13:36:33 -0400 Subject: [PATCH] output log messages with correct level --- .../backend/src/core/activitypub/JsonLdService.ts | 15 ++++++++++----- packages/backend/src/logger.ts | 10 +++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/core/activitypub/JsonLdService.ts b/packages/backend/src/core/activitypub/JsonLdService.ts index 1db5df6ad9..08ebeb6707 100644 --- a/packages/backend/src/core/activitypub/JsonLdService.ts +++ b/packages/backend/src/core/activitypub/JsonLdService.ts @@ -8,6 +8,8 @@ import { Injectable } from '@nestjs/common'; import { UnrecoverableError } from 'bullmq'; import { HttpRequestService } from '@/core/HttpRequestService.js'; import { bindThis } from '@/decorators.js'; +import Logger from '@/logger.js'; +import { LoggerService } from '@/core/LoggerService.js'; import { StatusError } from '@/misc/status-error.js'; import { CONTEXT, PRELOADED_CONTEXTS } from './misc/contexts.js'; import { validateContentTypeSetAsJsonLD } from './misc/validator.js'; @@ -17,12 +19,12 @@ import type { JsonLd as JsonLdObject, RemoteDocument } from 'jsonld/jsonld-spec. // RsaSignature2017 implementation is based on https://github.com/transmute-industries/RsaSignature2017 class JsonLd { - public debug = false; public preLoad = true; public loderTimeout = 5000; constructor( private httpRequestService: HttpRequestService, + private readonly logger: Logger, ) { } @@ -84,7 +86,7 @@ class JsonLd { const transformedData = { ...data }; delete transformedData['signature']; const cannonidedData = await this.normalize(transformedData); - if (this.debug) console.debug(`cannonidedData: ${cannonidedData}`); + this.logger.debug('cannonidedData', cannonidedData); const documentHash = this.sha256(cannonidedData.toString()); const verifyData = `${optionsHash}${documentHash}`; return verifyData; @@ -115,7 +117,7 @@ class JsonLd { if (this.preLoad) { if (url in PRELOADED_CONTEXTS) { - if (this.debug) console.debug(`HIT: ${url}`); + this.logger.debug(`Preload HIT: ${url}`); return { contextUrl: undefined, document: PRELOADED_CONTEXTS[url], @@ -124,7 +126,7 @@ class JsonLd { } } - if (this.debug) console.debug(`MISS: ${url}`); + this.logger.debug(`Preload MISS: ${url}`); const document = await this.fetchDocument(url); return { contextUrl: undefined, @@ -169,13 +171,16 @@ class JsonLd { @Injectable() export class JsonLdService { + private readonly logger: Logger; constructor( private httpRequestService: HttpRequestService, + loggerService: LoggerService, ) { + this.logger = loggerService.getLogger('json-ld'); } @bindThis public use(): JsonLd { - return new JsonLd(this.httpRequestService); + return new JsonLd(this.httpRequestService, this.logger); } } diff --git a/packages/backend/src/logger.ts b/packages/backend/src/logger.ts index ca9b494ff2..4bf45fc76b 100644 --- a/packages/backend/src/logger.ts +++ b/packages/backend/src/logger.ts @@ -23,6 +23,14 @@ export type DataElement = DataObject | Error | string | null; // https://stackoverflow.com/questions/61148466/typescript-type-that-matches-any-object-but-not-arrays export type DataObject = Record | (object & { length?: never; }); +const levelFuncs = { + error: 'error', + warning: 'warn', + success: 'info', + info: 'log', + debug: 'debug', +} as const satisfies Record; + // eslint-disable-next-line import/no-default-export export default class Logger { private context: Context; @@ -86,7 +94,7 @@ export default class Logger { } else if (data != null) { args.push(data); } - console.log(...args); + console[levelFuncs[level]](...args); } @bindThis