有没有办法禁用所有firebase日志记录到控制台?

时间:2014-07-31 14:03:25

标签: javascript logging firebase

我为firebase安全规则创建了一些单元测试。这项测试的一部分是试图进行非法操作并声称它们失败了。

我的问题与噪音有关;当我使用nodeunit运行测试时,firebase客户端会发出几个与此类似的日志:

  

FIREBASE WARNING:设置为/ user failed:permission_denied

我故意做非法操作时不想要这个输出,因为它只会导致噪音和混乱。

4 个答案:

答案 0 :(得分:2)

无法禁用安全警告,因为它们是由Firebase SDK异步发出的。我通过在错误之前添加消息来解决这个问题:

>>> An intentional security error should be printed after this line...

答案 1 :(得分:2)

正如加藤所说,似乎没有官方的方法来禁用它。也就是说,如果你真的想要,进入源代码需要2秒钟,按Ctrl + F进行“警告”,并注释掉这一行:

"undefined"!==typeof console.warn?console.warn(b):console.log(b)

答案 2 :(得分:2)

在我们的测试套件中,我们将process.stderr.write重写为仅忽略firebase警告,如下所示:

<强>的Javascript

process.stderr.write = (function(write) {
  return function() {
    if (!arguments[0].includes("FIREBASE WARNING"))
      write.apply(process.stderr, arguments);
  };
}(process.stderr.write));

打字稿(包括tslint修复)

process.stderr.write = (() => {
    // tslint:disable-next-line:no-unbound-method
    const write = process.stderr.write;

    return function () {
        if (!(arguments[0] as string).includes("FIREBASE WARNING")) {
            return write.apply(process.stderr, arguments);
        }
    };
})();

答案 3 :(得分:1)

现在有一个选项可以在全局 firebase 对象上设置日志级别:

import firebase from 'firebase/app';

firebase.setLogLevel('silent')