-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlogger.js
More file actions
84 lines (75 loc) · 2.44 KB
/
logger.js
File metadata and controls
84 lines (75 loc) · 2.44 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
81
82
83
84
const winston = require('winston');
const { createLogger, format, transports } = winston;
const Logger = winston.Logger;
const { combine, timestamp, printf, colorize } = format;
const DailyRotateFile = require('winston-daily-rotate-file');
const { DiscordTransport } = require('winston-transport-discord');
const { HiddenLogger } = require('winston/lib/winston/logger');
/*
* Custom logger
*/
const defaultLogFormat = printf(({ level, message, timestamp }) => {
return `[${level}][${timestamp}]: ${message}`;
});
const discordLogFormat = printf(({ level, message }) => {
return `[${level}] ${message}`;
});
const setLevel = function (logLevel) {
this.level = logLevel;
}
const enableConsoleTransport = function () {
this.add(new transports.Console({
format: winston.format.combine(
colorize({ all: true }),
timestamp(),
defaultLogFormat
)
}))
}
const enableFileTransport = function () {
this.add(new DailyRotateFile({
format: winston.format.combine(
timestamp(),
defaultLogFormat
),
filename: 'logs/application-%DATE%.log',
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
maxSize: '20m',
maxFiles: '30d'
}))
}
const enableDiscordTransport = function (webhookUrl) {
this.add(new DiscordTransport({
metadata: {
host: 'CodeQL Agent'
},
discord: {
webhook: {
url: webhookUrl
}
},
format: combine(discordLogFormat),
level: 'info'
}))
}
/*
* There are two logger instances
* 1. Default logger: defaultLogger. This logger is used for logging to console and file
* 2. Bug logger: bugLogger. This logger is used for logging bugs found.
*/
var defaultLogger = new createLogger({});
var bugLogger = new createLogger({});
defaultLogger.setLevel = setLevel;
defaultLogger.enableConsoleTransport = enableConsoleTransport;
defaultLogger.enableFileTransport = enableFileTransport;
defaultLogger.enableDiscordTransport = enableDiscordTransport;
bugLogger.setLevel = setLevel;
bugLogger.enableConsoleTransport = enableConsoleTransport;
bugLogger.enableFileTransport = enableFileTransport;
bugLogger.enableDiscordTransport = enableDiscordTransport;
defaultLogger.setLevel('info')
defaultLogger.enableConsoleTransport()
bugLogger.setLevel('info')
module.exports.defaultLogger = defaultLogger;
module.exports.bugLogger = bugLogger;