代码之家  ›  专栏  ›  技术社区  ›  Peter Alexandr Nikitin

如何从NPM包进行日志记录,而不必强制使用日志库

  •  2
  • Peter Alexandr Nikitin  · 技术社区  · 7 年前

    我正在编写一个公司的npm包(typescript),并将现有代码移植到其中。在现有的代码中,有一些 console.log , console.warn console.error

    try {
        const foo = getFoo("bar");
        return callback(undefined, foo);
    } catch (e) {
        console.error(e);
        return cb(new httpErrors.BadRequest("Some message"));
    }
    

    所以现在发生的是:

    • 记录错误
    • 使用另一个错误调用回调,而不是传入原始错误

    这是我们想要的行为,因为我们不想返回原始错误消息,但我们确实希望它出现在日志中。

    现在我要转到一个包,我想应用一些最佳实践并删除 console

    那么什么是最好的方法呢?

    debug 包,但这只是为了开发目的。另外,这意味着除非我们设置 DEBUG=...

    EventEmitter 在我的包裹里有一个选项。但话说回来,单例被视为反模式。

    我考虑过的最后一个选项是允许传入一个日志函数,然后我可以调用它,但我觉得它有点糟糕。

    那么,允许从(TypeScript/npm)库记录消息的首选技术是什么呢?

    1 回复  |  直到 7 年前
        1
  •  2
  •   basarat    7 年前

    那么,允许从(TypeScript/npm)库记录消息的首选技术是什么呢?

    您希望处理默认的错误行为,同时允许使用者查看错误消息。

    你的选择就是

    1. 依赖于您选择的日志库。

    https://basarat.gitbooks.io/typescript/docs/tips/typed-event.html

    推荐文章