返回文章列表
Node.js-WebServer开发实践:本地日志
Node.js
【前言】
本地日志是服务端开发中必备的能力,
在nodejs web server的开发过程中,
可以使用log4js实现本地日志能力,
【qiao-log】
log4js的使用可以查看官网文档,
这里封装了一个npm包,欢迎使用: https://www.npmjs.com/package/qiao-log
默认输出日志到控制台和本地,
本地输出的日志使用datefile方式,
对应的配置项如下,
{
appenders: {
stdout: {
type: 'stdout',
},
datefile: {
type: 'dateFile',
pattern: 'yyyy-MM-dd-hh',
filename: 'log.log',
keepFileExt: true,
},
},
categories: {
default: {
level: 'debug',
appenders: ['stdout', 'datefile'],
},
},
}
使用方法如下
1. 创建logger,其中options非必选
const Logger = require('qiao-log');
const logger = Logger(options);
2. 打印日志
logger.debug;
logger.info;
logger.warn;
logger.error;
效果如下
1. 在控制台输出日志

2. 在对应的目录下输出日志

【qiao-z中使用】
qiao-z是一个极简的nodejs web server框架,
详见: https://qiao-z.vincentqiao.com/#/
可以在qiao-z中很方便的使用qiao-log插件来写本地日志
初始化时传入qiao-log插件和log-options,如下
// options
const options = {
// log
log: require('qiao-log'),
logOptions: require('./server/log-options.js')(),
};
// qz
const qz = require('qiao-z');
// app
const app = qz(options);
需要写本地日志的地方可以使用req.logger写日志,如下
req.logger.error(error);
log-options.js内容如下
/**
* log options
* @returns
*/
module.exports = () => {
// log options
const logLevel = 'debug';
const logPattern = 'yyyy-MM-dd-hh';
const logPath = require('path').resolve(__dirname, '../logs/qiao-z.log');
return {
appenders: {
stdout: {
type: 'stdout',
},
datefile: {
type: 'dateFile',
pattern: logPattern,
filename: logPath,
keepFileExt: true,
},
},
categories: {
default: {
level: logLevel,
appenders: ['stdout', 'datefile'],
},
},
};
};
【总结】
1. log4js介绍,https://www.npmjs.com/package/log4js
2. qiao-log介绍, https://code.insistime.com/#/qiao-log
3. 在qiao-z中使用qiao-log插件, https://qiao-z.vincentqiao.com/#/plugins/logger