Node.js 日志处理模块log4js是一个流行的日志库,可用于记录应用程序的日志。 下面是使用log4js的完整攻略:
1. 安装log4js
使用以下npm命令安装log4js:npm install log4js --save
2. 配置log4js
创建一个名为log4js.json
的配置文件(或者是一个JavaScript模块),定义日志的输出和格式。例如,以下是一个简单的配置示例,定义了一个控制台输出器和一个文件输出器:
{
"appenders": {
"stdout": { "type": "stdout" },
"file": {
"type": "file",
"filename": "logs/app.log",
"maxLogSize": 10485760,
"backups": 3,
"compress": true
}
},
"categories": {
"default": { "appenders": [ "stdout", "file" ], "level": "info" }
}
}
上面的配置文件指定一个名为stdout
的控制台输出器,以及一个名为file
的文件输出器。file输出器将日志写入名为logs/app.log
的文件中,支持最大日志大小,最大备份数量和压缩。categories部分定义了默认的日志记录级别为info,并为stdout和file输出器启用。
3. 初始化log4js
在应用程序中初始化log4js并加载配置文件:
const log4js = require('log4js');
log4js.configure('log4js.json');
const logger = log4js.getLogger();
上面的代码初始化了log4js,并将配置文件加载到log4js中。 getLogger()方法可用于创建日志记录器实例,可以在每个模块中使用。
4. 记录日志
通过调用日志记录器的不同方法可以记录日志。例如:
logger.debug('Debugging information');
logger.info('Informational message');
logger.warn('Warning message');
logger.error('Error message');
logger.fatal('Fatal error message');
除了上述方法外,还可以使用log()方法记录自定义日志消息:
const logMessage = 'Custom log message';
logger.log('info', logMessage);
log()方法允许您指定日志记录级别和消息。
示例说明
以下是两个使用log4js的示例:
示例1:记录HTTP请求日志
将以下代码添加到您的Express应用程序中,可以记录每个HTTP请求的详细信息:
const log4js = require('log4js');
const logger = log4js.getLogger();
log4js.configure({
appenders: {
http: { type: 'file', filename: 'logs/http.log' }
},
categories: {
default: { appenders: ['http'], level: 'info' }
}
});
app.use((req, res, next) => {
logger.info(`${req.method} request to ${req.originalUrl}`);
next();
});
上面的代码创建一个名为http
的文件输出器,并为Express应用程序中的每个请求记录日志。
示例2:记录处理WebSockets的日志
以下代码可在处理WebSockets时记录详细的日志信息:
const log4js = require('log4js');
const logger = log4js.getLogger('WebSockets');
log4js.configure({
appenders: {
file: { type: 'file', filename: 'logs/chat.log' }
},
categories: {
default: { appenders: ['file'], level: 'info' }
}
});
io.on('connection', (socket) => {
logger.info(`Socket connected: ${socket.id}`);
socket.on('chat message', (msg) => {
logger.info(`Message received: ${msg}`);
io.emit('chat message', msg);
logger.info(`Message sent to all clients: ${msg}`);
});
socket.on('disconnect', () => {
logger.info(`Socket disconnected: ${socket.id}`);
});
});
上面的代码初始化一个WebSockets日志记录器,记录连接、断开和聊天消息的详细信息。它使用名为chat.log
的单个文件输出器来记录日志。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js 日志处理模块log4js - Python技术站