node使用 log4js

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

原文地址:https://www.cnblogs.com/muamaker/p/9599822.html