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

标签 performance methods log4j

在我的日志消息中,我需要插入生成消息的方法的名称。我查看了 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/

    相关文章:

    java - 选择日志记录提供商

    SQL Server Update 仅在其更新时触发并且仅针对列中的特定值

    python - 为什么嵌套函数比非嵌套函数慢这么多?

    java - 设置/返回数组的首选方式

    java - 锁和同步方法的区别

    java - 避免对大型日志消息进行字符串连接

    c++ - 反转数字的最有效方法

    java - 错误: Main method not found in class Calculate, 请定义main方法为:public static void main(String[] args)

    c# - 将控件传递给方法

    java - log4j:WARN 创建自定义 Appender 时没有此类属性 [append]