我正在尝试用Java编写脚本或程序,以查找并将Log4J的所有实例和变体替换为logback / SLF4J。
以下是我的Log4J记录器的一些示例:
log.error(myName+ "Ctrl: Exception: caught in runBcpOrderInfoSearchState "+ e.getMessage());
更改为:
log.error("{}Ctrl: Exception: caught in runBcpOrderInfoSearchState {}", myName, e.getMessage());
如果有,请分享一些经验。
答案 0 :(得分:1)
我以前必须做过好几次这样的事情。你可以编写正则表达式,但通常太难(太多的极端情况)才能正确。
我最好的建议是使用键盘宏系统 - 我通常启动Emacs - 并且变得聪明。找到带引号的字符串,剪切它,将其移动到括号开始的位置,将+替换为。制作一个宏,在下一个案例中触发它,必要时自我纠正。这是一种很好的方式,可以让它稍微减少乏味,而不会迷失在自动化的复杂问题中,你可能永远不会再使用它。
答案 1 :(得分:1)
我对slf4j迁移器进行了增强,该迁移器将日志消息转换为参数化:https://github.com/JamesStauffer/slf4j
答案 2 :(得分:0)
使用slf4j migrator。