-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathLogger.js
More file actions
80 lines (67 loc) · 2.81 KB
/
Logger.js
File metadata and controls
80 lines (67 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const winston = require('winston');
const { format } = require('winston');
const DataMasker = require('./SensitiveDataMasker');
const { combine, timestamp, label, printf } = format;
require('winston-daily-rotate-file');
const ExternalLoggerWrapper = require('../logging/ExternalLoggerWrapper');
const maskedLoggingFormat = printf(({ level, message, label, timestamp }) => {
return `[${timestamp}] [${level.toUpperCase()}] [${label}] : ${DataMasker.maskSensitiveData(message)}`;
});
const unmaskedLoggingFormat = printf(({ level, message, label, timestamp }) => {
return `[${timestamp}] [${level.toUpperCase()}] [${label}] : ${JSON.stringify(message)}`;
});
exports.getLogger = function (merchantConfig, loggerCategory = 'UnknownCategoryLogger') {
if(merchantConfig.getLogConfiguration().isExternalLoggerSet() && merchantConfig.getLogConfiguration().getExternalLogger()
&& merchantConfig.getLogConfiguration().getExternalLogger().getLogger()
&& merchantConfig.getLogConfiguration().getExternalLogger() instanceof ExternalLoggerWrapper){
let logger = merchantConfig.getLogConfiguration().getExternalLogger().getLogger();
return logger;
}
var enableLog = merchantConfig.getLogConfiguration().isLogEnabled();
var enableMasking = merchantConfig.getLogConfiguration().isMaskingEnabled();
var newLogger;
if (enableLog) {
var appTransports = createTransportFromConfig(merchantConfig);
var loggingLevel = merchantConfig.getLogConfiguration().getLoggingLevel();
newLogger = winston.loggers.get(loggerCategory, {
level: loggingLevel,
format: combine(
label({ label: loggerCategory }),
timestamp(),
enableMasking ? maskedLoggingFormat : unmaskedLoggingFormat
),
transports: appTransports
});
} else {
newLogger = winston.loggers.get(loggerCategory, {
level: loggingLevel,
format: combine(
label({ label: loggerCategory }),
timestamp(),
enableMasking ? maskedLoggingFormat : unmaskedLoggingFormat
),
transports: [new winston.transports.Console({
silent: !enableLog
})]
});
}
return newLogger;
}
function createTransportFromConfig(mConfig) {
var transports = [];
var enableLog = mConfig.getLogConfiguration().isLogEnabled();
var loggingLevel = mConfig.getLogConfiguration().getLoggingLevel();
var maxLogFiles = mConfig.getLogConfiguration().getMaxLogFiles();
var logFileName = mConfig.getLogConfiguration().getLogFileName();
var logDirectory = mConfig.getLogConfiguration().getLogDirectory();
transports.push(new winston.transports.DailyRotateFile({
level: loggingLevel,
filename: logFileName + '-%DATE%.log',
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
dirname: logDirectory,
maxFiles: maxLogFiles,
silent: !enableLog
}));
return transports;
}