【问题标题】:log4js - how to specify log file name with an environment variable?log4js - 如何使用环境变量指定日志文件名?
【发布时间】:2015-04-01 06:51:57
【问题描述】:

我正在使用 log4js-node 登录我的节点 js 应用程序。我想使用环境变量在我的 log4js 配置 json 中指定日志文件名的路径。这是我正在使用的配置 json:

{
    "appenders": [{
        "type": "file",
        "filename": "${env.API_HOME}/logs/apiserver_log_file.log",
        "maxLogSize": 20480,
        "backups": 3,
        "category": "apiserver"
    }]
}

应用程序启动时,由于未正确读取环境变量,找不到指定路径。

Error: ENOENT, open '${env.API_HOME}/logs/apiserver_log_file.log'

如何在log4js配置json中正确使用环境变量?

【问题讨论】:

    标签: node.js logging environment-variables


    【解决方案1】:

    例子:

    var log4js = require('log4js'); 
    //console log is loaded by default, so you won't normally need to do this
    //log4js.loadAppender('console');
    log4js.loadAppender('file');
    //log4js.addAppender(log4js.appenders.console());
    log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');
    
    var logger = log4js.getLogger('cheese');
    logger.setLevel('ERROR');
    
    logger.trace('Entering cheese testing');
    logger.debug('Got cheese.');
    logger.info('Cheese is Gouda.');
    logger.warn('Cheese is quite smelly.');
    logger.error('Cheese is too ripe!');
    logger.fatal('Cheese was breeding ground for listeria.');
    

    输出:

    [2010-01-17 11:43:37.987] [错误] 奶酪 - 奶酪太熟了! [2010-01-17 11:43:37.990] [致命] 奶酪 - 奶酪是李斯特菌的温床。

    【讨论】:

    • 这里的配置在 JS 文件中。(log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');) 我希望配置在 JSON 文件中。我们如何在那里使用环境变量?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2013-03-23
    • 2019-08-22
    • 2010-10-07
    • 2011-02-18
    • 2017-11-22
    相关资源
    最近更新 更多