log4js 2.x的配置使用

剛好有需求,寫一個log文件,記錄信息。但是在網上找了很久沒有合適的方案來給我一個新手去使用的。最終在github上找到一個demo,方案 很好,拿來配置了一下,感覺很不錯。地址:https://github.com/xrian/node-log4j2-example

首先需要做的,創建一個log4js的配置文件。log4js.json

{
    "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/app-info.log",
        "pattern": ".yyyy-MM-dd",
        "layout": {
          "type": "pattern",
          "pattern": "[%d{ISO8601}][%5p  %z  %c] %m"
        },
        "compress": true
      },
      "maxInfo": {
        "type": "logLevelFilter",
        "appender": "info",
        "level": "debug",
        "maxLevel": "info"
      },
      "error": {
        "type": "dateFile",
        "filename": "log/app-error.log",
        "pattern": ".yyyy-MM-dd",
        "layout": {
          "type": "pattern",
          "pattern": "[%d{ISO8601}][%5p  %z  %c] %m"
        },
        "compress": true
      },
      "minError": {
        "type": "logLevelFilter",
        "appender": "error",
        "level": "error"
      }
    },
    "categories": {
      "default": {
        "appenders": [
          "console",
          "http",
          "maxInfo",
          "minError"
        ],
        "level": "all"
      }
    }
  }

config\log4j.json是配置文件 配置了三個類別 一個是http請求日誌,相當於tomcat的access日誌,當日志到達30M時,重新生成一個新的文件 一個是保存debug和info級別的日誌.每天生成一個新的文件 一個是保存error及以上等級的日誌.每天生成一個新的文件

之後,在app.js文件中,使用log4js

修改app.js 在頂部引入

var log4js = require('log4js');
log4js.configure('config/log4j.json');

這樣,就可以在項目中的其他地方使用log4j輸出日誌了.

var logger = require('log4js').getLogger("index");
logger.info('');
logger.error('');

將log4j整合進入express

在app.js中,將express默認的日誌模塊註釋掉,並且加載log4js模塊

// app.use(logger('dev'));
app.use(log4js.connectLogger(log4js.getLogger("http"), { level: 'trace' }));

app.use(log4js.connectLogger(…))這代碼,最好是放在其他的app.use()前面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章