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

  • 相关阅读:
    深入了解Struts2返回JSON数据的原理及具体应用范例
    Struts国际化
    LeetCode Balanced Binary Tree
    LeetCode Triangle
    Binary Tree Level Order Traversal
    Pow(x,n)
    Symmetric Tree
    LeetCode Word Search
    LeetCode Insert Interval
    Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/muamaker/p/9599822.html
Copyright © 2020-2023  润新知