Console.js
2.06 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
/**
* 重写console函数
* logsConfig 包含日志相关设置
logsConfig:{
consoles:["log"]//选择启动console的选择方法,
src:""//文件目录
}
* @type {exports}
*/
var _ = require('lodash');
var Logger = require('./Logger');
module.exports = function (logsConfig) {
//生成日志文件
var loggers = Logger(logsConfig);
/*重写console方法*/
var Consoles = ['log', 'info', 'warn', 'error', 'debug'];
var conConsnt={
log : console.log,
info : console.info,
warn : console.warn,
error : console.error,
debug : console.debug
};
var JsonToString=function(str){
return typeof str === "string" ? str : JSON.stringify(str);
}
_.forEach(Consoles, function (v) {
if(["log","warn"].indexOf(v)>-1){
console[v] = function () {
var args = [].slice.call(arguments, 0),content='';
if(args.length===1){
content=JsonToString(args[0]);
}else{
var name=args.shift();
content=name+"\n"
args.forEach(function(item,index){
content+="---["+index+"]---"+JsonToString(item)+"\n";
});
}
args[0] = "["+v+"]"+content;
conConsnt[v].apply(console, args);
};
}else{
console[v] = function () {
loggers[v][v].apply(loggers[v],arguments);
};
}
});
function difference(array1, array2) {
return array1.filter(function (item, value) {
return !(array2.indexOf(item) > -1);
});
}
//过滤出index中不需要打印或生成日志的输出
logsConfig.consoles = logsConfig.consoles || [];
if (logsConfig.consoles) {
var invalidCons = difference(Consoles, logsConfig.consoles);
invalidCons.forEach(function (f) {
console[f] = function () {
};
return false;
});
return false;
}
};