2017-02-14 43 views
0

目前我已經實現了express.js應用程序,並且爲了記錄目的而添加了log4js記錄器。現在我想將日誌寫入Redis,然後後臺工作者不斷從Redis列表中提取日誌,並將這些日誌寫入本地日誌文件。聚合日誌並稍後寫入文件而不直接寫入文件

App.js看起來像這樣

import { getLogger, configure } from 'log4js'; 
 
import {initServer} from './middleware/Express' 
 
import { initRoutes } from './routes/RouterAggregator'; 
 

 
configure('./src/config/log4js-config.json'); 
 
const logger = getLogger("app"); 
 

 
const init =()=> { 
 
    logger.info("Initializing Application"); 
 
    initServer(); 
 
    initRoutes(); 
 
};

和日誌配置文件應該是這樣的。

{ 
 
    "appenders": [ 
 
    { 
 
     "type": "console", 
 
     "layout": { 
 
     "type": "pattern", 
 
     "pattern": "[%d] [%[%p%]] %c {%x{ln}} - %m", 
 
     "tokens": { 
 
      "ln" : "loggerFunction()" 
 
     } 
 
     } 
 
    }, 
 
    { 
 
     "type": "dateFile", 
 
     "filename": "log/access.log", 
 
     "pattern": "-yyyy-MM-dd", 
 
     "alwaysIncludePattern": false, 
 
     "category": "http", 
 
     "layout": { 
 
     "type" : "pattern", 
 
     "pattern": "[%d] [%p] %c {%x{ln}} - %m", 
 
     "tokens": { 
 
      "ln" : "loggerFunction()" 
 
     } 
 
     } 
 
    }, 
 
    { 
 
     "type": "dateFile", 
 
     "filename": "log/app.log", 
 
     "maxLogSize": 10485760, 
 
     "numBackups": 3, 
 
     "alwaysIncludePattern": false, 
 
     "layout": { 
 
     "type" : "pattern", 
 
     "pattern": "[%d] [%p] %c {%x{ln}} - %m", 
 
     "tokens": { 
 
      "ln" : "loggerFunction()" 
 
     } 
 
     } 
 
    }, 
 
    { 
 
     "type": "logLevelFilter", 
 
     "level": "ERROR", 
 
     "appender": { 
 
     "type": "file", 
 
     "filename": "log/errors.log" 
 
     }, 
 
     "layout": { 
 
     "type" : "pattern", 
 
     "pattern": "[%d] [%p] %c {%x{ln}} - %m", 
 
     "tokens": { 
 
      "ln" : "loggerFunction()" 
 
     } 
 
     } 
 
    } 
 
    ] 
 
}

我想知道如何添加的Redis支持上述功能。

回答

1

不確定正確的方式來做到這一點,但它似乎你將不得不寫一個寫入redis的自定義appender。

log4js的built-in appenders的示例在github上。

+0

確實,我找到了一個增加了對這個支持的軟件包,但是請注意如何配置這個logstash server conf,如果你知道的話請告訴我。感謝您的寶貴意見 https://github.com/beyond5959/log4js-logstash-redis –