我需要在应用程序中更改日志记录设计。目前我的应用程序使用实用程序类来处理所有错误,信息和调试语句。我需要改变它。例如,我需要更改
的所有出现次数Log.send("XXX", Log.DEBUG);
到
logger.debug("XXX");
和
Log.send("XXX", Log.INFO);
到
logger.info("XXX"); or
我可以使用任何工具或在Notepad ++或textpad等编辑器中使用正则表达式吗?
答案 0 :(得分:1)
使用正则表达式搜索并查找(我使用原子风格):
发现:Log.send\((\"\w+\"), Log.DEBUG\);
REPLACE:logger.debug($1)
发现:Log.send\((\"\w+\"), Log.INFO\);
REPLACE:logger.info($1)
答案 1 :(得分:0)
在Notepad ++中,您可以像这样使用正则表达式
<强> logger.debug 强>
查找:
Log\.send\("([^"]+)", Log\.DEBUG\);
替换:
logger\.debug\("\1"\);
<强> logger.info 强>
查找:
Log\.send\("([^"]+)", Log\.INFO\);
替换:
logger\.info\("\1"\);
我在eclipse中对此进行了测试,但它确实有效。对于Netbeans,只需将\1
替换为$1
即可。如果你想 lazy 并且只为这两个使用一个正则表达式查找和替换匹配,那么你可以使用它:
查找
Log\.send\("([^"]+)", Log\.([^\)]+)\);
替换
logger\.\L\2\E\("\1"\);
不同之处在于我也捕获了DEBUG
和INFO
,然后将它们用作logger
的方法名称。但是,关键字是大写的,所以我先将它们设置为小写(因此,\L
和\E
到cut off the lower case。
答案 2 :(得分:0)
如果你可以访问cygwin(windows)或shell(os x或linux)上的vi,或者甚至其他linux命令都应该让这个变得非常简单。这是另一种方式。此外,您不必打开每个文件,如果您这样做,它应该是shell上的一个命令,用于整个项目源代码。
示例:下面的代码查找当前目录中所有文件的测试搜索字符串(递归),并将其替换为&#39; replacetext&#39;
grep -r -l 'test' . | sort | uniq | xargs perl -e "s/test/replacetext/" -pi