【发布时间】:2018-08-09 22:05:24
【问题描述】:
我正在开发日志助手(在 Node.JS 中),女巫几乎没有导出函数 (error, warn, etc...)。
例如,我有两个其他脚本使用我的“模块”:test1, test2
当我在两个脚本中初始化我的日志记录模块 (let log = require("./log.js");) 时,我需要获取如下错误消息:[time][ERROR][TEST1] actual message...
我可以使用非单例方法并将构造函数添加到我的日志记录模块中,这将采用TEST1,因此每个脚本都可以拥有自己的记录器。
但是当有 100 个脚本使用 logger 时,也会有 100 个 logger 实例。
那么有没有更好的方法来获得相同的结果,每个文件都可以有自己定义的前缀?
【问题讨论】:
-
你可以在你的记录器中创建一个初始化函数。然后点赞
let log=require('./log.js'); log.init('test1')。这可能会让你在加载它时更清楚地知道正在发生的事情。 -
我有这种方法,但是当我对文件 test1.js 和
log.init('test2')在文件 test2.js 和 test1.js 中执行log.init('test1')时,test1.js 将调用log.error(blah),您将获得 test2 的前缀,因为它的单身 -
哦,好吧,对不起。您可以尝试stackoverflow.com/questions/16697791/… 和相关问题中的类似方法来获取调用日志记录功能的文件的名称
-
是的,当你总是想要前缀=文件名时,文件名是个好主意,但我需要自定义前缀
-
或者根本没有前缀
标签: javascript node.js ecmascript-6 singleton