1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const log4js = require("log4js");
|
4 | const cls_service_1 = require("./services/cls_service");
|
5 | exports.DEFAULT_LOG_LEVEL = 'TRACE';
|
6 | function 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 | }
|
20 | exports.createLoggerJsonLayout = createLoggerJsonLayout;
|
21 | function 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 | }
|
37 | exports.configureLogger = configureLogger;
|
38 | function getLogger(config) {
|
39 | createLoggerJsonLayout(config);
|
40 | configureLogger(config);
|
41 | return log4js.getLogger();
|
42 | }
|
43 | exports.getLogger = getLogger;
|
44 | function 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 | }
|
51 | exports.replaceConsoleWithLogger = replaceConsoleWithLogger;
|