log4j:显示方法名称的最快方法?

I Z*_*I Z 8 methods performance log4j

在我的日志消息中,我需要插入生成消息的方法的名称.我看过Log4J文档以及"M"和"l"转换字符,它们也有警告,例如"警告生成调用者位置信息非常慢,应该避免,除非执行速度不是问题".所以我(至少)有两个选择:

  1. 使用这些字符但速度慢了我的代码
  2. 手动将方法名称插入到消息中,即这样的log.info("myMethod: message");内容会更快但不那么优雅

还有其他选项不会减慢我的代码吗?

谢谢!

小智 6

我不确定您正在使用的 IDE,但如果您使用基于 Eclipse 的 IDE,您应该能够使用一些 Java 模板。这仍将使用方法名称作为字符串,但会节省您的键入时间。

我创建了一整套这样的模板:

  • 模板名称 -li
  • 图案 -logger.info("${cursor}");

等等对于warnerror、 和debug

对于方法的开始和结束,或者只是将方法名称添加到每次注销 - 使用类似以下内容:

  • 模板名称 -lie
  • 图案 -logger.info("End: ${enclosing_method}${cursor}");

等等。

唯一的限制是您的记录器引用变量始终必须命名logger。现在您只需要键入lieand (如果您在模板创建时取消选中“自动插入”ctrl复选框,则可以选择按+ 。)space

哈!