-
Notifications
You must be signed in to change notification settings - Fork 0
/
log.js
46 lines (36 loc) · 1.16 KB
/
log.js
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
// Copyright 2024 Joseph P Medley
'use strict';
const config = require('config');
const winston = require('winston');
const utils = require('./utils.js');
global.__logger = {};
global.__loggerInitiated = false;
function _initiateLogger(name = '') {
if (!global.__loggerInitiated) {
global.__loggerInitiated = true;
const logLevel = config.get('Application.logLevel');
const console = new winston.transports.Console();
global.__logger = winston.createLogger({
level: logLevel,
transports: [
console
]
});
const logDirectory = utils.resolveHome(config.get('Application.loggingDirectory'));
let logFileName = utils.makeFolder(logDirectory);
logFileName += `${name}_${utils.today()}.log`
const logOutput = config.get('Application.logOutput');
logOutput.forEach(lo => {
switch (lo) {
case 'file':
const fileTransport = new winston.transports.File({filename: logFileName});
global.__logger.add(fileTransport);
break;
}
});
if (!logOutput.includes('console')) {
global.__logger.remove(console);
}
}
}
module.exports.initiateLogger = _initiateLogger;