log4js

这一篇足够:转载:http://www.cnblogs.com/Joans/p/4092293.html

代码贴出来吧:

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
47
48
49
50
51
var log4js = require('log4js');
log4js.configure({
    appenders: [
        {
            type: 'console',
            category: "console"
        }, //控制台输出
        {
            type: "dateFile",
            filename: 'logs/log.log',
            pattern: "_yyyy-MM-dd",
            alwaysIncludePattern: false,
            category: 'dateFileLog'
        },
        {
            type: "dateFile",
            filename: 'logs/sqllog.log',
            pattern: "_yyyy-MM-dd",
            alwaysIncludePattern: false,
            category: 'sqlFileLog'
        },
        {
            type: 'file',
            filename: 'logs/soldier.log',
            category: 'soldierLog'
        }
    ],
    replaceConsole: true,   //替换console.log
    levels: {
        dateFileLog: 'INFO',
        sqlFileLog: 'INFO',
        soldierLog: 'ERROR'
    }
});
 
var dateFileLog = log4js.getLogger('dateFileLog');
var soldierLog = log4js.getLogger('soldierLog');
var sqlFile = log4js.getLogger('sqlFileLog');
 
 
//exports.logger = dateFileLog;
 
exports.use = function (app) {
    //页面请求日志,用auto的话,默认级别是WARN
    //app.use(log4js.connectLogger(dateFileLog, {level:'auto', format:':method :url'}));
    app.use(log4js.connectLogger(dateFileLog, {level: 'debug', format: ':method :url'}));
};
 
global.logger = dateFileLog;
global.sqlLogger = sqlFile;
global.soldierLog = soldierLog;

在express初始化时候:

var log = require('./log4');//引入Log4js

log.use(app);//app为express的对象

虽然设置的debug模式,但是只有info以上的可以打出来,info也可以

其中type的格式有file 还有datefile之类的。

 

log4js的输出级别6个: trace, debug, info, warn, error, fatal

  • logger.trace(‘Entering cheese testing’);
  • logger.debug(‘Got cheese.’);
  • logger.info(‘Cheese is Gouda.’);
  • logger.warn(‘Cheese is quite smelly.’);
  • logger.error(‘Cheese is too ripe!’);
  • logger.fatal(‘Cheese was breeding ground for listeria.’);

如果输出级别是INFO,则不会打印出低于info级别的日志trace,debug,只打印info,warn,error,fatal。这样做 的好处在于,在生产环境中我们可能只关心异常和错误,并不关心调试信息。从而大大减少日志的输出,能减少磁盘写入。而在开发环境中,我们可以需要打印非常 多的信息,帮助开发人员定位错误,调试代码。

还有一个好处就是,代码中可以混有各种的日志打印代码。我们只要在一个配置文件中,修改输出级别,日志输出就会发生变化,不用修改所有的代码。如果所有地方都是console.log(),那么上线的时候,改动这个东西就要花很多时间。

 

posted @   飘然离去  阅读(738)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· Supergateway:MCP服务器的远程调试与集成工具
· C# 13 中的新增功能实操
点击右上角即可分享
微信分享提示