log4js
//配置日志的输出级别,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八个级别,default level is OFF
//只有大于等于日志配置级别的信息才能输出出来,可以通过category来有效的控制日志输出级别
配置如下:
var config = {
"appenders": {
"console": {
"type": "console"
},
"trace": {
"type": "file",
"filename": "log/access.log",
"maxLogSize ": 31457280
},
"http": {
"type": "logLevelFilter",
"appender": "trace",
"level": "trace",
"maxLevel": "trace"
},
"info": {
"type": "dateFile",
"filename": "log/info",
"pattern": "-yyyy-MM-dd.log",
"alwaysIncludePattern": true,
"compress": true
},
"maxInfo": {
"type": "logLevelFilter",
"appender": "info",
"level": "debug",
"maxLevel": "info"
},
"error": {
"type": "dateFile",
"filename": "log/error",
"pattern": "-yyyy-MM-dd.log",
"alwaysIncludePattern": true,
"compress": true
},
"minError": {
"type": "logLevelFilter",
"appender": "error",
"level": "error"
}
},
"categories": {
"default": {
"appenders": [
"console",
"http",
"maxInfo",
"minError"
],
"level": "all"
}
}
}
var log4js = require('log4js');
log4js.configure(config);
var logger = log4js.getLogger("index");
//logger.level = 'debug';
logger.info("info--sadadasd");
logger.error("error--sadadasd");
logger.error("error--sadadasd");
logger.fatal("fatel--sadadasd");
logger.trace("trace--sadadasd");
其中:
1、 config.appenders 相当于定义了一些命令 console,trace,http..
其中 type :“console” 表示在控制台输出、file:文件输出、dateFile:按日期文件输出
2、categories.level:日志等级
categories.default : 调用上面的那些命令
3、例如:
在开发环境,不需要将日志存入文件,直接打印出来就可以了,则只需要引入一个console即可
categories.default.appenders = ["console"] //只在控制台打印输出
4、express整合使用
新建 logger.js文件
var config = {
"appenders": {
"console": { //输出到控制台
"type": "console"
},
"trace": { //输出到文件 (log/access.log)
"type": "file",
"filename": "log/access.log",
"maxLogSize ": 31457280
},
"http": {
"type": "logLevelFilter", //定义输出到文件,日志的等级
"appender": "trace", //对应定义的 appenders 里面的 trace任务
"level": "trace", //输出到任务文件(log/access.log)的 日志最低等级
"maxLevel": "trace" // 输出到任务文件(log/access.log)的 日志最高等级
},
"info": {
"type": "dateFile", //输出到格式化的文件(log/info-yyyy-MM-dd.log)
"filename": "log/info",
"pattern": "-yyyy-MM-dd.log",
"alwaysIncludePattern": true,
"compress": true
},
"maxInfo": {
"type": "logLevelFilter", //定义输出到文件,日志的等级
"appender": "info",//对应定义的 appenders 里面的 info任务
"level": "debug", //输出到任务文件(log/info-yyyy-MM-dd.log)的 日志最低等级
"maxLevel": "info" //输出到任务文件(log/info-yyyy-MM-dd.log)的 日志最高等级
},
"error": {
"type": "dateFile", //输出到格式化的文件 (log/error-yyyy-MM-dd.log)
"filename": "log/error",
"pattern": "-yyyy-MM-dd.log",
"alwaysIncludePattern": true,
"compress": true
},
"minError": {
"type": "logLevelFilter", //定义输出到文件,日志的等级
"appender": "error",//对应定义的 appenders 里面的 error任务
"level": "error" //输出到任务文件(log/error-yyyy-MM-dd.log)的 日志最低等级
}
},
"categories": {
"default": {
"appenders": [
"console",
"http",
"maxInfo",
"minError"
],
"level": "all"
}
}
}
//配置日志的输出级别,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八个级别,default level is OFF
//只有大于等于日志配置级别的信息才能输出出来,可以通过category来有效的控制日志输出级别
/*
var logger = log4js.getLogger("global:");
logger.level = 'error';
logger.debug("debug---asdasdasd");
logger.info("info--sadadasd");
logger.error("error--sadadasd");
logger.error("error--sadadasd");
logger.fatal("fatel--sadadasd");
logger.trace("trace--sadadasd");
*
* */
var log4js = require('log4js');
//根据运行环境配置参数
if(process.env.NODE_ENV == "production"){
//生产环境
config.categories.default.appenders = ["http","maxInfo","minError"];
config.categories.default.level = "info";
}else{
config.categories.default.appenders = ["console"];
config.categories.default.level = "all";
}
log4js.configure(config);
module.exports = log4js;
在app.js
var log4js = require('log4js');
var logger = require("./lib/logger").getLogger("app.js"); //表示这个日志来着于 app.js文件
// app.use(logger('dev'));
app.use(log4js.connectLogger(log4js.getLogger("http"), { level: 'trace' })); //http请求日志,输出的等级为trace
5、其他地方使用:
var logger = require("./lib/logger").getLogger("other.js");
//logger.level = 'error'; //可以不设置,不设置就使用之前配置的default里面的等级
logger.debug("debug---asdasdasd");
logger.info("info--sadadasd");
logger.error("error--sadadasd");
logger.error("error--sadadasd");
logger.fatal("fatel--sadadasd");
logger.trace("trace--sadadasd");
var config = { "appenders": { "console": { //输出到控制台 "type": "console" }, "trace": { //输出到文件 (log/access.log) "type": "file", "filename": "log/access.log", "maxLogSize ": 31457280 }, "http": { "type": "logLevelFilter", //定义输出到文件,日志的等级 "appender": "trace", //对应定义的 appenders 里面的 trace任务 "level": "trace", //输出到任务文件(log/access.log)的 日志最低等级 "maxLevel": "trace"//输出到任务文件(log/access.log)的 日志最高等级 }, "info": { "type": "dateFile", //输出到格式化的文件(log/info-yyyy-MM-dd.log) "filename": "log/info", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true, "compress": true }, "maxInfo": { "type": "logLevelFilter", //定义输出到文件,日志的等级 "appender": "info",//对应定义的 appenders 里面的 info任务 "level": "debug", //输出到任务文件(log/info-yyyy-MM-dd.log)的 日志最低等级 "maxLevel": "info" //输出到任务文件(log/info-yyyy-MM-dd.log)的 日志最高等级 }, "error": { "type": "dateFile", //输出到格式化的文件 (log/error-yyyy-MM-dd.log) "filename": "log/error", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true, "compress": true }, "minError": { "type": "logLevelFilter", //定义输出到文件,日志的等级 "appender": "error",//对应定义的 appenders 里面的 error任务 "level": "error" //输出到任务文件(log/error-yyyy-MM-dd.log)的 日志最低等级 } }, "categories": { "default": { "appenders": [ "console", "http", "maxInfo", "minError" ], "level": "all" } }}