|
|
// 引入log4js模块,它是一个用于在Node.js应用中进行日志记录的常用库,能够方便地实现不同级别的日志输出以及日志的格式化、存储等功能
|
|
|
var log4js = require('log4js');
|
|
|
|
|
|
// 使用log4js的configure方法进行日志配置,配置项以对象形式传入
|
|
|
log4js.configure({
|
|
|
// 配置日志的输出目标(appenders),这里定义了一个名为'cheese'的输出配置
|
|
|
appenders: {
|
|
|
// 'type'指定了输出类型为'file',即输出到文件
|
|
|
// 'filename'指定了输出的文件名是'cheese.log',意味着日志信息将会被记录到该文件中
|
|
|
cheese: { type: 'file', filename: 'cheese.log' }
|
|
|
},
|
|
|
// 配置日志的分类(categories),用于将不同的日志记录器划分到不同的类别,并指定每个类别的相关属性
|
|
|
categories: {
|
|
|
// 'default'表示默认的日志类别
|
|
|
default: {
|
|
|
// 'appenders'数组指定了该类别使用的日志输出目标,这里只使用了前面定义的'cheese'输出目标
|
|
|
appenders: ['cheese'],
|
|
|
// 'level'指定了该类别日志记录的级别,这里设置为'error',表示只有错误级别及以上的日志才会被记录到对应的输出目标中
|
|
|
level: 'error'
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 将一个名为'logger'的函数作为模块的属性导出,用于获取日志记录器实例
|
|
|
exports.logger = function (level) {
|
|
|
// 通过log4js的getLogger方法获取名为'cheese'的日志记录器实例,后续可以使用这个实例来记录相应的日志信息
|
|
|
var logger = log4js.getLogger("cheese");
|
|
|
// 设置该日志记录器的日志级别为'debug',这意味着从调试级别(最低级别)开始的所有日志都会被记录,覆盖了之前配置中'default'类别里设置的'error'级别(此处修改可能根据实际需求而定)
|
|
|
logger.level = 'debug';
|
|
|
// 返回配置好的日志记录器实例,外部模块可以调用该函数获取实例后进行日志记录操作
|
|
|
return logger;
|
|
|
};
|
|
|
|
|
|
// 以下是一段被注释掉的代码,从函数名和使用方式来看,它原本是用于配合Express框架使用的方法,用于在Express应用中集成log4js日志记录功能
|
|
|
// exports.use = function (app, level) {
|
|
|
// // 在Express应用中使用log4js的connectLogger中间件来记录请求相关的日志信息
|
|
|
// // 首先通过log4js的getLogger方法获取名为'logInfo'的日志记录器实例(这里假设'logInfo'是之前定义好的某个日志记录器名称,实际可能需要准确配置)
|
|
|
// app.use(log4js.connectLogger(log4js.getLogger('logInfo'), {
|
|
|
// // 设置日志记录的级别,它会尝试从传入的'level'参数获取对应级别,如果没有则使用默认的'debug'级别(这里的'levels'变量未在提供的代码中定义,可能是一个定义了不同日志级别映射关系的对象,实际应用中需要准确处理)
|
|
|
// level: levels[level] || levels['debug'],
|
|
|
// // 定义日志记录的格式,这里使用了简单的格式字符串,指定记录请求的方法、URL以及响应状态等信息,方便后续查看请求相关的日志详情
|
|
|
// format: ':method :url :status'
|
|
|
// }));
|
|
|
// };
|