首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse (查找并替换):Make < System.out.println("x") > to < Logger.log("x",Level.Info) >

Eclipse (查找并替换):Make < System.out.println("x") > to < Logger.log("x",Level.Info) >
EN

Stack Overflow用户
提问于 2011-10-26 19:54:43
回答 3查看 2.1K关注 0票数 1

我有一个巨大的旧软件项目,我想把它集成到我自己的项目中。为此,我想替换所有

代码语言:javascript
复制
System.out.println("x")

使用

代码语言:javascript
复制
Logger.log("x", Level.Info)

如何使用Eclipse做到这一点?

编辑:

例如:

代码语言:javascript
复制
System.out.println("x") --> Logger.log("x", Level.Info)
System.out.println("abc") --> Logger.log("abc", Level.Info)
System.out.println(myObject) --> Logger.log(myObject, Level.Info)

我只想用一个命令就能做到。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-26 20:31:34

Eclipse支持多文件搜索和替换方法。预览:

checked as >> System.out.println(("^"*"))

  • Check
  1. Main Menu -> Search -> File...
  2. 输入以下内容作为“包含文本”:System.out.println((“^”*“))
  3. Check Regular Expression Checkbox
  4. Choose the scope (工作区,项目等)
  5. Hit Expression询问输入以下内容为"With":Logger.log(\1,

Regular Expression Checkbox选中

  1. Hit Preview...并检查所有更改(请参阅下面的警告)
  2. 点击ok接受更改

这是一个非常简单的方法,使用表达式“^”来精确匹配两个引号和其间的所有内容。如果程序中的文本比较复杂,则必须相应地调整此方法,例如,使用“^”不能执行以下操作。

代码语言:javascript
复制
System.out.println("x"+"y");
System.out.println("x"+2);
System.out.println("x:\"3\"");

请明智地使用它。

票数 2
EN

Stack Overflow用户

发布于 2011-10-26 20:14:27

所以基本上你想用Logger.log("same random text here",Level.info);替换System.out.println("random text here");。我不认为这在Eclipse中是可能的,但你可以做一个小的Java程序,它从你的项目中读取所有的*.java文件,进行替换,然后重新输出它们,类似于:

代码语言:javascript
复制
public static void main(String args[]) {
        String source = "System.out.println(\"text\");";
        String sourcePrefix = "System.out.println(\"";
        String sourceSuffix = "\");";
        String targetPrefix = "Logger.log(\"";
        String targetSuffix = "\",LogLevel.info);";

        String replaced = source.replace(sourcePrefix, targetPrefix).replace(sourceSuffix, targetSuffix);
        System.out.println(replaced);
    }
票数 1
EN

Stack Overflow用户

发布于 2011-10-26 20:35:23

我更喜欢文本替换,就像你建议的那样,但也有可能使用以下内容完全重定向System.out:

代码语言:javascript
复制
Logger logger = Logger.getLogger("stdout");                                   
LoggingOutputStream los = new LoggingOutputStream(logger, StdOutErrLevel.STDOUT);          
System.setOut(new PrintStream(los, true)); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7902219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档