diff --git a/bufflog.ts b/bufflog.ts index f25a110..e7cad28 100644 --- a/bufflog.ts +++ b/bufflog.ts @@ -1,3 +1,5 @@ +import { Options } from "pino-http"; + const pinoLogger = require('pino')({ level: process.env.LOG_LEVEL ? String.prototype.toLowerCase.apply(process.env.LOG_LEVEL) : "notice", // probably we want to call it `msg`. if so, let's change the PHP library instead @@ -49,19 +51,22 @@ export function critical(message: string, context?: object) { pinoLogger.fatal({context: context}, message); } -export function middleware() { +export function middleware(options?: Options) { + + const { logger, genReqId, useLevel, stream, autoLogging, customLogLevel } : Options = options || {}; + return require('pino-http')({ - logger: pinoLogger, + logger: logger || pinoLogger, - // Define a custom logger level - customLogLevel: function (res: any, err: any) { - if (res.statusCode >= 400 && res.statusCode < 500) { - // for now, we don't want notice notification on the 4xx + // Define a custom logger level + customLogLevel: customLogLevel || function (res: any, err: any) { + if (res.statusCode >= 400 && res.statusCode < 500) { + // for now, we don't want notice notification on the 4xx + return 'info' + } else if (res.statusCode >= 500 || err) { + return 'error' + } return 'info' - } else if (res.statusCode >= 500 || err) { - return 'error' - } - return 'info' - }, + }, }) } diff --git a/index.ts b/index.ts index 69056e3..8adf7a8 100644 --- a/index.ts +++ b/index.ts @@ -24,7 +24,11 @@ BuffLog.critical('hello critical', {"some":"stuff"}); const app = express(); -app.use(BuffLog.middleware()) + app.use(BuffLog.middleware()) + +// use custom parameter , here a pino logger + app.use(BuffLog.middleware({'logger': require('pino')()})) + app.listen(4000, () => { console.log(`Server is listening on port 4000`); diff --git a/package-lock.json b/package-lock.json index 3a56c5f..8818745 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@bufferapp/bufflog", - "version": "0.0.4", + "version": "0.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -65,6 +65,14 @@ "@types/sonic-boom": "*" } }, + "@types/pino-http": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@types/pino-http/-/pino-http-4.4.0.tgz", + "integrity": "sha512-KZH4QW3Z82BAFBfYzGHwA/5S4xmqN4i3FcheY3AjDj3402vUgGG0KgYqODU/KfFUd39uYEXHz4CJYVN7512vvA==", + "requires": { + "@types/pino": "*" + } + }, "@types/pino-std-serializers": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.0.tgz", diff --git a/package.json b/package.json index 13a2fd2..3e22b25 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bufferapp/bufflog", - "version": "0.0.5", + "version": "0.0.6", "description": "logger for all javascript and typescript Buffer services", "main": "dist/bufflog.js", "scripts": { @@ -24,6 +24,7 @@ }, "dependencies": { "@types/pino": "^5.15.5", + "@types/pino-http": "^4.4.0", "dd-trace": "^0.18.0", "pino": "^5.16.0", "pino-http": "^5.0.0"