diff options
Diffstat (limited to 'packages/backend/src/server')
6 files changed, 51 insertions, 32 deletions
diff --git a/packages/backend/src/server/FileServerService.ts b/packages/backend/src/server/FileServerService.ts index 0f4246bfd1..4db9205e36 100644 --- a/packages/backend/src/server/FileServerService.ts +++ b/packages/backend/src/server/FileServerService.ts @@ -13,29 +13,24 @@ import { DI } from '@/di-symbols.js'; import { createTemp } from '@/misc/create-temp.js'; import { FILE_TYPE_BROWSERSAFE } from '@/const.js'; import { StatusError } from '@/misc/status-error.js'; -import Logger from '@/logger.js'; +import type Logger from '@/logger.js'; import { DownloadService } from '@/core/DownloadService.js'; import { ImageProcessingService } from '@/core/ImageProcessingService.js'; import { VideoProcessingService } from '@/core/VideoProcessingService.js'; import { InternalStorageService } from '@/core/InternalStorageService.js'; import { contentDisposition } from '@/misc/content-disposition.js'; import { FileInfoService } from '@/core/FileInfoService.js'; - -const serverLogger = new Logger('server', 'gray', false); +import { LoggerService } from '@/core/LoggerService.js'; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); const assets = `${_dirname}/../../server/file/assets/`; -const commonReadableHandlerGenerator = (ctx: Koa.Context) => (e: Error): void => { - serverLogger.error(e); - ctx.status = 500; - ctx.set('Cache-Control', 'max-age=300'); -}; - @Injectable() export class FileServerService { + #logger: Logger; + constructor( @Inject(DI.config) private config: Config, @@ -48,9 +43,19 @@ export class FileServerService { private imageProcessingService: ImageProcessingService, private videoProcessingService: VideoProcessingService, private internalStorageService: InternalStorageService, + private loggerService: LoggerService, ) { + this.#logger = this.loggerService.getLogger('server', 'gray', false); } + public commonReadableHandlerGenerator(ctx: Koa.Context) { + return (e: Error): void => { + this.#logger.error(e); + ctx.status = 500; + ctx.set('Cache-Control', 'max-age=300'); + }; + } + public createServer() { const app = new Koa(); app.use(cors()); @@ -134,7 +139,7 @@ export class FileServerService { ctx.set('Content-Type', FILE_TYPE_BROWSERSAFE.includes(image.type) ? image.type : 'application/octet-stream'); ctx.set('Cache-Control', 'max-age=31536000, immutable'); } catch (err) { - serverLogger.error(`${err}`); + this.#logger.error(`${err}`); if (err instanceof StatusError && err.isClientError) { ctx.status = err.statusCode; diff --git a/packages/backend/src/server/MediaProxyServerService.ts b/packages/backend/src/server/MediaProxyServerService.ts index b9cee38f0a..5344d3a9f4 100644 --- a/packages/backend/src/server/MediaProxyServerService.ts +++ b/packages/backend/src/server/MediaProxyServerService.ts @@ -13,13 +13,14 @@ import { ImageProcessingService } from '@/core/ImageProcessingService.js'; import type { IImage } from '@/core/ImageProcessingService.js'; import { FILE_TYPE_BROWSERSAFE } from '@/const.js'; import { StatusError } from '@/misc/status-error.js'; -import Logger from '@/logger.js'; +import type Logger from '@/logger.js'; import { FileInfoService } from '@/core/FileInfoService.js'; - -const serverLogger = new Logger('server', 'gray', false); +import { LoggerService } from '@/core/LoggerService.js'; @Injectable() export class MediaProxyServerService { + #logger: Logger; + constructor( @Inject(DI.config) private config: Config, @@ -27,7 +28,9 @@ export class MediaProxyServerService { private fileInfoService: FileInfoService, private downloadService: DownloadService, private imageProcessingService: ImageProcessingService, + private loggerService: LoggerService, ) { + this.#logger = this.loggerService.getLogger('server', 'gray', false); } public createServer() { @@ -123,7 +126,7 @@ export class MediaProxyServerService { ctx.set('Cache-Control', 'max-age=31536000, immutable'); ctx.body = image.data; } catch (err) { - serverLogger.error(`${err}`); + this.#logger.error(`${err}`); if (err instanceof StatusError && (err.statusCode === 302 || err.isClientError)) { ctx.status = err.statusCode; diff --git a/packages/backend/src/server/ServerService.ts b/packages/backend/src/server/ServerService.ts index 2ee7135c2a..8349e1e9f5 100644 --- a/packages/backend/src/server/ServerService.ts +++ b/packages/backend/src/server/ServerService.ts @@ -12,12 +12,13 @@ import { GlobalEventService } from '@/core/GlobalEventService.js'; import { Config } from '@/config.js'; import { UserProfilesRepository, UsersRepository } from '@/models/index.js'; import { DI } from '@/di-symbols.js'; -import Logger from '@/logger.js'; +import type Logger from '@/logger.js'; import { envOption } from '@/env.js'; import * as Acct from '@/misc/acct.js'; import { genIdenticon } from '@/misc/gen-identicon.js'; import { createTemp } from '@/misc/create-temp.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js'; +import { LoggerService } from '@/core/LoggerService.js'; import { ActivityPubServerService } from './ActivityPubServerService.js'; import { NodeinfoServerService } from './NodeinfoServerService.js'; import { ApiServerService } from './api/ApiServerService.js'; @@ -27,10 +28,10 @@ import { MediaProxyServerService } from './MediaProxyServerService.js'; import { FileServerService } from './FileServerService.js'; import { ClientServerService } from './web/ClientServerService.js'; -const serverLogger = new Logger('server', 'gray', false); - @Injectable() export class ServerService { + #logger: Logger; + constructor( @Inject(DI.config) private config: Config, @@ -51,7 +52,9 @@ export class ServerService { private mediaProxyServerService: MediaProxyServerService, private clientServerService: ClientServerService, private globalEventService: GlobalEventService, + private loggerService: LoggerService, ) { + this.#logger = this.loggerService.getLogger('server', 'gray', false); } public launch() { @@ -62,7 +65,7 @@ export class ServerService { if (!['production', 'test'].includes(process.env.NODE_ENV ?? '')) { // Logger koa.use(koaLogger(str => { - serverLogger.info(str); + this.#logger.info(str); })); // Delay @@ -151,16 +154,16 @@ export class ServerService { this.streamingApiServerService.attachStreamingApi(server); - server.on('error', e => { - switch ((e as any).code) { + server.on('error', err => { + switch ((err as any).code) { case 'EACCES': - serverLogger.error(`You do not have permission to listen on port ${this.config.port}.`); + this.#logger.error(`You do not have permission to listen on port ${this.config.port}.`); break; case 'EADDRINUSE': - serverLogger.error(`Port ${this.config.port} is already in use by another process.`); + this.#logger.error(`Port ${this.config.port} is already in use by another process.`); break; default: - serverLogger.error(e); + this.#logger.error(err); break; } diff --git a/packages/backend/src/server/api/ApiLoggerService.ts b/packages/backend/src/server/api/ApiLoggerService.ts index c8c5fec85c..c4fb25036e 100644 --- a/packages/backend/src/server/api/ApiLoggerService.ts +++ b/packages/backend/src/server/api/ApiLoggerService.ts @@ -1,12 +1,14 @@ import { Inject, Injectable } from '@nestjs/common'; -import Logger from '@/logger.js'; +import type Logger from '@/logger.js'; +import { LoggerService } from '@/core/LoggerService.js'; @Injectable() export class ApiLoggerService { public logger: Logger; constructor( + private loggerService: LoggerService, ) { - this.logger = new Logger('api'); + this.logger = this.loggerService.getLogger('api'); } } diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts index d390a47b8f..61b7b1ff47 100644 --- a/packages/backend/src/server/api/RateLimiterService.ts +++ b/packages/backend/src/server/api/RateLimiterService.ts @@ -2,17 +2,21 @@ import { Inject, Injectable } from '@nestjs/common'; import Limiter from 'ratelimiter'; import Redis from 'ioredis'; import { DI } from '@/di-symbols.js'; -import Logger from '@/logger.js'; +import type Logger from '@/logger.js'; +import { LoggerService } from '@/core/LoggerService.js'; import type { IEndpointMeta } from './endpoints.js'; -const logger = new Logger('limiter'); - @Injectable() export class RateLimiterService { + #logger: Logger; + constructor( @Inject(DI.redis) private redisClient: Redis.Redis, + + private loggerService: LoggerService, ) { + this.#logger = this.loggerService.getLogger('limiter'); } public limit(limitation: IEndpointMeta['limit'] & { key: NonNullable<string> }, actor: string) { @@ -33,7 +37,7 @@ export class RateLimiterService { return reject('ERR'); } - logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`); + this.#logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`); if (info.remaining === 0) { reject('BRIEF_REQUEST_INTERVAL'); @@ -61,7 +65,7 @@ export class RateLimiterService { return reject('ERR'); } - logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`); + this.#logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`); if (info.remaining === 0) { reject('RATE_LIMIT_EXCEEDED'); diff --git a/packages/backend/src/server/web/UrlPreviewService.ts b/packages/backend/src/server/web/UrlPreviewService.ts index 4e3b456144..726b158340 100644 --- a/packages/backend/src/server/web/UrlPreviewService.ts +++ b/packages/backend/src/server/web/UrlPreviewService.ts @@ -5,8 +5,9 @@ import { UsersRepository } from '@/models/index.js'; import { Config } from '@/config.js'; import { MetaService } from '@/core/MetaService.js'; import { HttpRequestService } from '@/core/HttpRequestService.js'; -import Logger from '@/logger.js'; +import type Logger from '@/logger.js'; import { query } from '@/misc/prelude/url.js'; +import { LoggerService } from '@/core/LoggerService.js'; import type Koa from 'koa'; @Injectable() @@ -22,8 +23,9 @@ export class UrlPreviewService { private metaService: MetaService, private httpRequestService: HttpRequestService, + private loggerService: LoggerService, ) { - this.#logger = new Logger('url-preview'); + this.#logger = this.loggerService.getLogger('url-preview'); } #wrap(url?: string): string | null { |