gpt4 book ai didi

migration - 将 Log4J log.debug 语句迁移到 SLF4J 的参数化消息?

转载 作者:行者123 更新时间:2023-12-04 06:19:54 26 4
gpt4 key购买 nike

我有大约 400 个生产 Java 源代码文件,每个文件大约有一百到两万行代码,可以从 Log4J 字符串连接更改为 SLF4J 的参数化日志记录。

if(log.isDebugEnabled(){
log.debug("Came here with value: " + car.getName());
}

我想利用 SLF4J 的日志参数化

log.debug("Came here with value: {}", car.getName());



我正在考虑编写一个脚本来自动化这个过程,或者实际上有没有办法做到这一点?

我想更改为 SLF4J 的参数化日志记录的主要原因是 performance .

由于 LogBack + SLF4J 需要 JavaSE 5 及更高版本,因此将使用 SLF4J + Log4J,而我需要在 J2SE 1.4 JVM 环境中工作。

最佳答案

我怀疑您在使用 SLF4J/LOG4J 时会有任何性能改进,因为
org.slf4j.impl.Log4jLoggerAdapter将使用与您已经使用的代码几乎相同的代码(两次评估记录器是否已启用)。它首先会检查是否启用了调试日志记录,然后将格式化的消息发送到 org.apache.log4j.Category再次检查消息是否应该记录在配置的级别。

尽管如此,更改为参数化日志记录是有意义的,因为它更具可读性和更短。不幸的是,我不知道重构代码的任何授权方式。

编辑:刚刚注意到 SLF4J Migrator存在这似乎有助于进行一些基本的迁移(导入行和记录器声明)。这可能有助于开始迁移 - 即使日志语句不会被触及并且必须手动重构。

关于migration - 将 Log4J log.debug 语句迁移到 SLF4J 的参数化消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6719003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com