UNPKG

1.76 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const log4js = require("log4js");
4const cls_service_1 = require("./services/cls_service");
5exports.DEFAULT_LOG_LEVEL = 'TRACE';
6function createLoggerJsonLayout(appConfig) {
7 log4js.addLayout('json', (loggerConfig) => {
8 return (logEvent) => {
9 const loggedObject = {
10 startTime: logEvent.startTime,
11 levelStr: logEvent.level.levelStr,
12 application: appConfig.appName,
13 mdc: cls_service_1.ClsService.getTrace(),
14 message: logEvent.data.map((data) => typeof data === "object" ? JSON.stringify(data) : data)
15 };
16 return JSON.stringify(loggedObject);
17 };
18 });
19}
20exports.createLoggerJsonLayout = createLoggerJsonLayout;
21function configureLogger(appConfig) {
22 log4js.configure({
23 appenders: {
24 out: {
25 type: 'stdout',
26 layout: {
27 type: 'json'
28 }
29 }
30 },
31 categories: {
32 default: { appenders: ['out'], level: appConfig.logLevel || exports.DEFAULT_LOG_LEVEL }
33 },
34 pm2: appConfig.pm2
35 });
36}
37exports.configureLogger = configureLogger;
38function getLogger(config) {
39 createLoggerJsonLayout(config);
40 configureLogger(config);
41 return log4js.getLogger();
42}
43exports.getLogger = getLogger;
44function replaceConsoleWithLogger(logger) {
45 console.log = logger.log.bind(logger);
46 console.trace = logger.trace.bind(logger);
47 console.debug = logger.debug.bind(logger);
48 console.warn = logger.warn.bind(logger);
49 console.error = logger.error.bind(logger);
50}
51exports.replaceConsoleWithLogger = replaceConsoleWithLogger;