diff --git a/types/express-winston/express-winston-tests.ts b/types/express-winston/express-winston-tests.ts index 5d48bdd897..285d6725e7 100644 --- a/types/express-winston/express-winston-tests.ts +++ b/types/express-winston/express-winston-tests.ts @@ -67,6 +67,19 @@ app.use(expressWinston.errorLogger({ winstonInstance: logger, })); +// Request and error logger with function type msg +app.use(expressWinston.logger({ + msg: (req, res) => `HTTP ${req.method} ${req.url} - ${res.statusCode}`, + transports: [ + new winston.transports.Console({}) + ], +})); + +app.use(expressWinston.errorLogger({ + msg: (req, res) => `HTTP ${req.method} ${req.url} - ${res.statusCode}`, + winstonInstance: logger, +})); + expressWinston.bodyBlacklist.push('potato'); expressWinston.bodyWhitelist.push('apple'); expressWinston.defaultRequestFilter = (req: expressWinston.FilterRequest, prop: string) => req[prop]; diff --git a/types/express-winston/index.d.ts b/types/express-winston/index.d.ts index f7ae04319b..1d9c42355f 100644 --- a/types/express-winston/index.d.ts +++ b/types/express-winston/index.d.ts @@ -21,6 +21,7 @@ export type DynamicLevelFunction = (req: Request, res: Response, err: Error) => export type RequestFilter = (req: FilterRequest, propName: string) => any; export type ResponseFilter = (res: FilterResponse, propName: string) => any; export type RouteFilter = (req: Request, res: Response) => boolean; +export type MessageTemplate = string | ((req: Request, res: Response) => string); export interface BaseLoggerOptions { baseMeta?: object; @@ -34,7 +35,7 @@ export interface BaseLoggerOptions { level?: string | DynamicLevelFunction; meta?: boolean; metaField?: string; - msg?: string; + msg?: MessageTemplate; requestFilter?: RequestFilter; requestWhitelist?: string[]; responseFilter?: ResponseFilter; @@ -64,7 +65,7 @@ export interface BaseErrorLoggerOptions { dynamicMeta?: DynamicMetaFunction; level?: string | DynamicLevelFunction; metaField?: string; - msg?: string; + msg?: MessageTemplate; requestFilter?: RequestFilter; requestWhitelist?: string[]; }