2017-02-14 4 views
0

В настоящее время я реализовал приложение express.js, и я добавил log4js logger для ведения журнала. Теперь я хотел записать журналы в 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

Не уверен, что это правильный способ, но вам, похоже, придется написать пользовательский appender, который пишет redis.

Пример built-in appenders для log4js находится на github.

+0

Верно, я нашел пакет, который добавил поддержку для этого, но обратите внимание, как настроить этот протокол conf, если вы знаете, пожалуйста, дайте мне знать. Спасибо за ваш ценный вклад https://github.com/beyond5959/log4js-logstash-redis –

Смежные вопросы