javascript - logger.setLevel 在使用 log4js 运行 logger.js 时不是一个函数
问题描述
我正在尝试使用 log4js 创建日志文件。在完成所有配置后运行 node app.js 时,我收到以下错误。
错误:
TypeError: logger.setLevel is not a function
at Object.<anonymous> (E:\Angular\logging_project\routes\logger.js:14:20)
at Object.<anonymous> (E:\Angular\logging_project\routes\index.js:3:13)
请看我的代码。
logger.js
var log4js = require('log4js');
log4js.configure({
appenders: {
console: { type: 'console' },
filelog: { type: 'file', filename: "c://test.log", category: 'my_project' }
},
categories: {
file: { appenders:['filelog'],level:'error'},
another: {appenders: ['console'],level: 'trace'},
default: {appenders: ['console','filelog'],level: 'trace'}
}
});
var logger = log4js.getLogger('my_project');
logger.setLevel('DEBUG');
Object.defineProperty(exports, "LOG", {
value:logger,
})
index.js:
var express = require('express');
var router = express.Router();
var logger= require('./logger.js');
var log=logger.LOG;
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
exports.index = function(req, res){
log.debug("testing the debug log here....................");
log.error("testing the error log here....................");
log.info("testing the info log here....................");
log.trace("testing the trace log here....................");
res.render('index', { title: 'Express' });
};
module.exports = router;
应用程序.js
var express = require('express');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var log = require('./routes/logger');
var app = express();
app.use(logger('dev'));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
//use logger
app.use(log4js.connectLogger(log, { level: log4js.levels.DEBUG }));
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
console.log('node Express server listening on port ' + server.address().port);
});
module.exports = app;
我是节点 js 的新手,这是我第一次使用节点 js 创建日志文件。任何人都请帮我解决这个问题。如果我得到一个工作代码可能会更好。我整天都被这个困住了。
解决方案
您可以使用以下代码设置记录器级别:
logger.level = 'DEBUG';
推荐阅读
- android - 如何通过与活动推荐人相关的 Playstore 跟踪/报告订阅续订?
- powershell - 在 PowerShell Get-Date 中设置时区?
- spring-boot - 如何使用 GitLab 的 API 创建 Spring Boot rest api 以从 GitLab 中提取特定的存储库分支?
- dataframe - 你能在 PySpark 中长时间运行的 withColumn 调用中坚持下去吗
- ms-access - 尝试在 Microsoft Access 中链接 ODBC 表时出现空白表名
- android - 一键式 SMS 验证 API 不会使用 OTP 捕获传入的 SMS
- gitlab - 停止 Gitlab 在恢复时进行备份
- amazon-eks - EKS 只能同时运行 2 个 Fargate pod
- angular - @ngtools/webpack AngularWebpackPlugin 可以链接部分编译的常春藤库吗?
- swift - 如何在不使用 SwiftUI ScrollView 的情况下制作自定义 ScrollView?