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 | logEvent.context = {
|
10 | service: appConfig.appName,
|
11 | mdc: cls_service_1.ClsService.getTrace()
|
12 | };
|
13 | return JSON.stringify(logEvent);
|
14 | };
|
15 | });
|
16 | }
|
17 | exports.createLoggerJsonLayout = createLoggerJsonLayout;
|
18 | function configureLogger(appConfig) {
|
19 | log4js.configure({
|
20 | appenders: {
|
21 | out: {
|
22 | type: 'stdout',
|
23 | layout: {
|
24 | type: 'json'
|
25 | }
|
26 | }
|
27 | },
|
28 | categories: {
|
29 | default: { appenders: ['out'], level: appConfig.logLevel || exports.DEFAULT_LOG_LEVEL }
|
30 | },
|
31 | pm2: appConfig.pm2
|
32 | });
|
33 | }
|
34 | exports.configureLogger = configureLogger;
|
35 | function getLogger(config) {
|
36 | createLoggerJsonLayout(config);
|
37 | configureLogger(config);
|
38 | return log4js.getLogger();
|
39 | }
|
40 | exports.getLogger = getLogger;
|
41 | function replaceConsoleWithLogger(logger) {
|
42 | console.log = logger.log.bind(logger);
|
43 | console.trace = logger.trace.bind(logger);
|
44 | console.debug = logger.debug.bind(logger);
|
45 | console.warn = logger.warn.bind(logger);
|
46 | console.error = logger.error.bind(logger);
|
47 | }
|
48 | exports.replaceConsoleWithLogger = replaceConsoleWithLogger;
|