-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.js
executable file
·54 lines (52 loc) · 1.54 KB
/
logger.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
47
48
49
50
51
52
53
54
var log4js = require('log4js'),
util = require('util'),
moment = require('moment'),
stackTrace = require('stack-trace');
log4js.configure({
levels: {
default: 'DEBUG'
},
appenders: [
{
category: '[all]',
type: 'console',
layout: {
type: 'pattern',
pattern: '%d{yyyy-MM-ddThh:mm:ssO}|%[%p%]|%m'
}
}
],
replaceConsole: false
});
var logger = log4js.getLogger();
module.exports.logger = function (operationCode) {
'use strict';
var customLogger = {};
['debug', 'info', 'warn', 'error', 'fatal', 'trace', 'express',].forEach(
function (levelString) {
customLogger[levelString] = function (message) {
var frame, line, column, method;
frame = stackTrace.get()[1];
line = frame.getLineNumber();
column = frame.getColumnNumber();
method = frame.getFunctionName();
if(method === null){
method = 'anonymous';
}
var operation;
operation = operationCode ? operationCode : 'NA';
var formatedMessage = util.format('%s|[%s(%s,%s)]|[%s]|%s',
process.pid, method, line, column, operation, message);
if (levelString === 'express') {
return moment().format('YYYY-MM-DDThh:mm:ssZZ') + '|EXPRESS|' + formatedMessage;
} else if (levelString === 'trace') {
var formatedMessageTrace = util.format('\tat %s (%s:%s:%s)',
method, operation, line, column);
logger[levelString](formatedMessage);
console.log(formatedMessageTrace);
} else
logger[levelString](formatedMessage);
};
});
return customLogger;
};