From aad9c79391601a7b653560ab549d77271181ebdd Mon Sep 17 00:00:00 2001 From: apotdevin Date: Mon, 20 Dec 2021 10:40:44 -0500 Subject: [PATCH] chore: improve logging --- .env | 1 + src/server/app.module.ts | 9 +++++++-- src/server/config/configuration.ts | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.env b/.env index ee5513c1..fa6f0e8c 100644 --- a/.env +++ b/.env @@ -10,6 +10,7 @@ # Server Configs # ----------- # LOG_LEVEL='info' +# LOG_JSON=true # TOR_PROXY_SERVER=socks://127.0.0.1:9050 # DISABLE_TWOFA=true diff --git a/src/server/app.module.ts b/src/server/app.module.ts index 8e82f4e7..2fab85c4 100644 --- a/src/server/app.module.ts +++ b/src/server/app.module.ts @@ -11,11 +11,13 @@ import { ApiModule } from './modules/api/api.module'; import { getAuthToken } from './utils/request'; import { FetchModule } from './modules/fetch/fetch.module'; import { appConstants } from './utils/appConstants'; +import { transports, format } from 'winston'; import configuration from './config/configuration'; -import winston from 'winston'; import jwt from 'jsonwebtoken'; import cookie from 'cookie'; +const { combine, timestamp, prettyPrint, json } = format; + export type ContextType = { req: any; res: any; @@ -95,7 +97,10 @@ export type JwtObjectType = { inject: [ConfigService], useFactory: (config: ConfigService) => ({ level: config.get('logLevel'), - transports: [new winston.transports.Console()], + transports: [new transports.Console()], + format: config.get('logJson') + ? combine(timestamp(), json()) + : combine(timestamp(), prettyPrint()), }), }), ], diff --git a/src/server/config/configuration.ts b/src/server/config/configuration.ts index a2fa00e5..f43b9253 100644 --- a/src/server/config/configuration.ts +++ b/src/server/config/configuration.ts @@ -26,6 +26,7 @@ export type YamlEnvs = { type ConfigType = { basePath: string; isProduction: boolean; + logJson: boolean; playground: boolean; logLevel: string; jwtSecret: string; @@ -76,6 +77,7 @@ export default (): ConfigType => { const config: ConfigType = { isProduction, + logJson: process.env.LOG_JSON === 'true', masterPasswordOverride: process.env.MASTER_PASSWORD_OVERRIDE || '', disable2FA: process.env.DISABLE_TWOFA === 'true', basePath: process.env.BASE_PATH || '',