log4jsjavascript
//配置日誌的輸出級別,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八個級別,default level is OFFjava
//只有大於等於日誌配置級別的信息才能輸出出來,能夠經過category來有效的控制日誌輸出級別express
配置以下:app
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");
其中:ui
一、 config.appenders 至關於定義了一些命令 console,trace,http..debug
其中 type :「console」 表示在控制檯輸出、file:文件輸出、dateFile:按日期文件輸出日誌
二、categories.level:日誌等級code
categories.default : 調用上面的那些命令
三、例如:blog
在開發環境,不須要將日誌存入文件,直接打印出來就能夠了,則只須要引入一個console便可ip
categories.default.appenders = ["console"] //只在控制檯打印輸出
四、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
五、其餘地方使用:
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" } }}