在服务器端java脚本中使用跟踪保护是否值得(util.debugLog)

时间:2016-08-19 17:10:23

标签: javascript node.js performance logging

我喜欢util.debugLog,它总是在那里,它很简单,它看起来很好但是...作为一个java家伙,我们要小心一件事我们的跟踪语句是traceGuard,这样我们就可以避免昂贵的操作来收集/处理我们在跟踪模式下不会最终使用的数据。一个例子: if(myLogger.isLoggable(Level.FINER)    myLogger.logp((收集/创建/计算的昂贵东西));

这样,那些昂贵的操作永远不会发生(相比之下,它们会发生,然而不会被使用)。我没有看到util.debugLog的traceGuard类型功能。因此,如果我的情况下有一个特定的traceLogger(verboseLog),那么我似乎会做昂贵的操作,如果NODE_DEBUG不包含"详细"那么就把它们抛弃。

为了我的缘故,我只是粗暴地强迫它: var traceStr = process.env.NODE_DEBUG; var traceOn =(traceStr.indexOf(" verbose")> = 0); ... 然后用它: if(traceOn)verboseLog(" watson:在reqPost中获得响应:status:%d Msg:%s Hdrs:%s",res.statusCode,res.statusMessage,JSON.stringify(res.headers)) ;

这样看起来可以节省大量的工作(res.headers可能很大,并且通过这种方式将其字母化太便宜),而且在这样的服务器中,这可能是至关重要的。好奇如果人们认为这是值得的和/或是否有更好的方法(对其他日志包开放,但希望一个相当小的一个)。谢谢,

0 个答案:

没有答案