node使用 log4js

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"      }    }}

相關文章
相關標籤/搜索