如何最好地执行搜索并替换Java文件上的Log4J日志记录

时间:2011-08-03 02:26:18

标签: java replace find

我正在尝试用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());

如果有,请分享一些经验。

3 个答案:

答案 0 :(得分:1)

我以前必须做过好几次这样的事情。你可以编写正则表达式,但通常太难(太多的极端情况)才能正确。

我最好的建议是使用键盘宏系统 - 我通常启动Emacs - 并且变得聪明。找到带引号的字符串,剪切它,将其移动到括号开始的位置,将+替换为。制作一个宏,在下一个案例中触发它,必要时自我纠正。这是一种很好的方式,可以让它稍微减少乏味,而不会迷失在自动化的复杂问题中,你可能永远不会再使用它。

答案 1 :(得分:1)

我对slf4j迁移器进行了增强,该迁移器将日志消息转换为参数化:https://github.com/JamesStauffer/slf4j

答案 2 :(得分:0)

使用slf4j migrator