在我的日志消息中,我需要插入生成消息的方法的名称。我查看了 Log4J 文档和“M”和“l”转换字符,它们也有警告,如“警告生成调用者位置信息非常慢,除非执行速度不是问题,否则应该避免”。所以我(至少)有两个选择:
log.info("myMethod: message");
这会更快但不那么优雅 是否有其他选项不会减慢我的代码速度?
谢谢!
最佳答案
我不确定您正在使用的 IDE,但如果您使用的是基于 Eclipse 的 IDE,您应该能够使用一些 Java 模板。这仍将使用方法名称作为字符串,但会节省您的输入时间。
我创建了一整套这样的模板:
li
logger.info("${cursor}");
以此类推
warn
, error
, 和 debug
.对于方法的开始和结束,或者只是在每次注销时添加方法名称 - 使用如下内容:
lie
logger.info("End: ${enclosing_method}${cursor}");
等等。
唯一的限制是您的记录器引用变量必须始终命名为
logger
.现在你只需要输入
lie
和(如果您在模板创建时取消选中自动插入复选框,则可选择按 ctrl+space。)哼!
关于performance - log4j:显示方法名称的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979044/