syv*_*syv 174 logging libraries node.js
是否有任何库可以帮助我处理Node.Js应用程序中的日志记录?我想要做的就是,我想将所有日志写入文件,我还需要一些选项,比如在特定大小或日期后推出文件.
我已经整合了log4js,试图将所有配置细节保存在一个文件中,并仅使用其他应用程序文件中的方法以便于维护.但它没有按预期工作.这就是我想要做的
var log4js = require('log4js');
log4js.clearAppenders()
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('test.log'), 'test');
var logger = log4js.getLogger('test');
logger.setLevel('ERROR');
var traceLogger = function (message) {
logger.trace('message');
};
var errorLogger = function (message) {
logger.trace(message);
};
exports.trace = traceLogger;
exports.error = errorLogger;
Run Code Online (Sandbox Code Playgroud)
我已将此文件包含在其他文件中并尝试过
log.error ("Hello Error Message");
Run Code Online (Sandbox Code Playgroud)
但它没有用.这有什么不对吗?
小智 193
温斯顿是一个非常好的日志库.您可以使用它将日志写入文件.
代码看起来像:
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ json: false, timestamp: true }),
new winston.transports.File({ filename: __dirname + '/debug.log', json: false })
],
exceptionHandlers: [
new (winston.transports.Console)({ json: false, timestamp: true }),
new winston.transports.File({ filename: __dirname + '/exceptions.log', json: false })
],
exitOnError: false
});
module.exports = logger;
Run Code Online (Sandbox Code Playgroud)
然后你可以使用它:
var logger = require('./log');
logger.info('log to file');
Run Code Online (Sandbox Code Playgroud)
Mat*_*ian 59
我查看了很多记录器,但我找不到轻量级的解决方案 - 所以我决定制作一个发布在github上的简单解决方案.
我希望这能够帮到你.
http://bluejamesbond.github.io/Scribe.js/
https://github.com/bluejamesbond/Scribe.js
Tho*_*Tho 30
Log4js是nodejs应用程序最流行的日志库之一.
它支持许多很酷的功能:
例:
安装: npm install log4js
配置(./config/log4js.json
):
{"appenders": [
{
"type": "console",
"layout": {
"type": "pattern",
"pattern": "%m"
},
"category": "app"
},{
"category": "test-file-appender",
"type": "file",
"filename": "log_file.log",
"maxLogSize": 10240,
"backups": 3,
"layout": {
"type": "pattern",
"pattern": "%d{dd/MM hh:mm} %-5p %m"
}
}
],
"replaceConsole": true }
Run Code Online (Sandbox Code Playgroud)用法:
var log4js = require( "log4js" );
log4js.configure( "./config/log4js.json" );
var logger = log4js.getLogger( "test-file-appender" );
// log4js.getLogger("app") will return logger that prints log to the console
logger.debug("Hello log4js");// store log in file
Run Code Online (Sandbox Code Playgroud)sam*_*rav 11
您还可以使用https://npmjs.org/doc/coding-style.html中推荐的issacs的npmlog .
你可以在这里找到这个模块 https://github.com/isaacs/npmlog
"logger.setLevel('ERROR');" 造成了这个问题.我不明白为什么,但当我将它设置为"ALL"以外的任何内容时,文件中不会打印任何内容.我捅了一下并修改了你的代码.它对我来说很好.我创建了两个文件.
logger.js
var log4js = require('log4js');
log4js.clearAppenders()
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('test.log'), 'test');
var logger = log4js.getLogger('test');
logger.setLevel('ERROR');
var getLogger = function() {
return logger;
};
exports.logger = getLogger();
Run Code Online (Sandbox Code Playgroud)
logger.test.js
var logger = require('./logger.js')
var log = logger.logger;
log.error("ERROR message");
log.trace("TRACE message");
Run Code Online (Sandbox Code Playgroud)
当我运行"node logger.test.js"时,我在test.log文件中只看到"ERROR message".如果我将级别更改为"TRACE",则两行都打印在test.log上.
归档时间: |
|
查看次数: |
156379 次 |
最近记录: |