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(),那么上线的时候,改动这个东西就要花很多时间。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· Supergateway:MCP服务器的远程调试与集成工具
· C# 13 中的新增功能实操