UNPKG

log4bro

Version:

easy ELK logger with compliant output format, based on bunyan.

119 lines (96 loc) 2.51 kB
# different example show text & json output - (just run npm start to run example locally) ```javascript var log4bro = require("log4bro"); var options = { "productionMode": false, "logDir": "logs", "skipEnhance": true, "namespace": "", "silence": false, "loggerName": "dev", "dockerMode": false, "varKey": "MLOG" }; var logger = new log4bro(options); var msg = "ich mache mir sorgen, ob der logger denn noch funktioniert."; MLOG.trace(msg); MLOG.debug(msg); MLOG.info(msg); MLOG.warn(msg); MLOG.error(msg); MLOG.fatal(msg); MLOG.info(options); console.log(""); /* json style */ var options2 = { "productionMode": true, "logDir": "logs", "skipEnhance": true, "namespace": "", "silence": false, "loggerName": "dev", "dockerMode": true, "varKey": "JLOG", "logFieldOptions": { "log_type": "application", "application_type": "service", "service": "bro-service" } }; var logger2 = new log4bro(options2); JLOG.trace(msg); JLOG.debug(msg); JLOG.info(msg); JLOG.warn(msg); JLOG.error(msg); JLOG.fatal(msg); JLOG.error(options2); ``` # auto express.js access log logging ```javascript var express = require("express"); var log4bro = require("./../../index.js"); var options = { "productionMode": false, "logDir": "logs", "skipEnhance": true, "namespace": "", "silence": false, "loggerName": "dev", "dockerMode": true, "varKey": "MLOG", "level": "DEBUG", "serviceName": "cool-service" }; var logger = new log4bro(options); var app = express(); // log an elk formatted access log to cout logger.applyMiddlewareAccessLog(app); // pass morgan options // for example [skip option](https://github.com/expressjs/morgan#skip): only log error responses logger.applyMiddlewareAccessLog(app, undefined, { skip: function(req, res) { return res.statusCode < 400; } }); //log an elk formatted access log to a file logger.applyMiddlewareAccessLogFile(app, "./access_log.json"); ``` ## [Create Custom log fields](https://github.com/expressjs/morgan#creating-new-tokens) ```javascript logger.applyMiddlewareAccessLog(app, { new_fancy_field: (req, res) => { return 'i-am-your-new-field-in-access-log'; } }); ``` ## [skip logging](https://github.com/expressjs/morgan#skip) based on matching condition ```javascript // only log error responses logger.applyMiddlewareAccessLog(app, undefined, { skip: function(req, res) { return res.statusCode < 400; } }); ```