【问题标题】:How to temporarily disable log4js logging in javascript?如何暂时禁用 javascript 中的 log4js 日志记录?
【发布时间】:2019-04-10 09:20:13
【问题描述】:

有一些第三方库正在使用 log4js 来输出他们的日志。我知道这听起来违反直觉,但我想暂时禁用这些日志以便能够调查我遇到的问题。

如何在 javascript 代码中暂时禁用 log4js 日志?特别是nodejs。

【问题讨论】:

标签: javascript node.js logging


【解决方案1】:

在 log4js 5.3.0 中(不确定有多少版本是相同的),您可以通过在根记录器上临时关闭所有内容来做到这一点,这会影响其他所有记录器:

log4js.getLogger().level = 'off';

一个完整的例子:

#!/bin/env node

const log4js = require('log4js');

log4js.configure({
    appenders: {
        out: { type: "stdout" }
    },
    categories: {
        default: {
            appenders: [ "out" ],
            level: "info"
        }
    }
});

const rootLogger = log4js.getLogger();

const log = log4js.getLogger('foo');

log.info('this is on - turning off');

rootLogger.level = 'off';

log.info('this is off - turning back on');

rootLogger.level = 'info';

log.info('this is back on');

这给了你:

[2019-11-13T22:00:37.541] [INFO] foo - this is on - turning off
[2019-11-13T22:00:37.544] [INFO] foo - this is back on

【讨论】:

    【解决方案2】:

    在我的 nodejs 应用程序的 app.js 文件中,我放置以下代码以暂时禁用来自第三方库的 log4js 日志。

    const log4js = require('log4js')
    log4js.configure({})
    

    这适用于禁用日志。

    【讨论】:

    • 仅供参考,我认为这一定适用于较早版本的 log4js,但现在似乎需要正确配置,因此 {} 会引发错误。
    • /usr/local/bin/node_modules/log4js/lib/configuration.js:31 throw new Error(Problem with log4js configuration: (${util.inspect(config, { depth: 5 })}) ^ Error: Problem with log4js configuration: ({}) - must have a property对象类型的“附加器”。
    猜你喜欢
    • 2014-10-20
    • 1970-01-01
    • 2019-11-02
    • 2014-10-10
    • 1970-01-01
    • 2017-11-22
    • 2018-12-24
    • 2020-01-17
    • 2016-07-04
    相关资源
    最近更新 更多