有什么方法可以从java.util.logging.Logger输出中删除信息行? - java

使用java.util.logging.Logger将一些日志输出到控制台,如下所示:

public static void main(String[] args) {
    Logger logger = Logger.getLogger("test");
    logger.info("Hello Wolrd!");
}

输出为:

FEB 16, 2012 10:17:43 AM com.abc.HelloWorld main
INFO: Hello World.

看来还可以,但是...

我们在所有的Ant任务(内部标准)中都使用java.util.logging.Logger,而且我们有一个大型的ant项目。一个完整周期的控制台输出可能大于300KB,其中我们自己的记录器输出至少达到50KB。

现在,我不想看到有关时间,类名和Level.INFO输出方法的信息。此外,信息行也使得很难集中精力于自定义消息。

那么,有什么方法可以从每个输出(或仅从每个Level.INFO输出)中删除第一行(时间戳,类和方法的信息)吗?

参考方案

参见How do I get java logging output to appear on a single line?。但是,唯一的区别是删除第一行,而不是将其放在一行上。

要仅对INFO级别执行此操作,请扩展您要有条件修改的格式化程序(例如SimpleFormatter),并覆盖format方法。您可以执行以下操作:

public String format(LogRecord record){
  if(record.getLevel() == Level.INFO){
    return record.getMessage() + "\r\n";
  }else{
    return super.format(record);
  }
}

如果仅对INFO执行此操作,则可能不需要“INFO:”前缀-但可以根据需要重新添加。

java.util.Scanner不返回到提示 - java

import java.util.Scanner; class newClass { public static void main(String args[]) { Scanner s = new Scanner(System.in); while (s.hasNext()) { System.out.println(s.next()); } s.clos…

如何在此简单的Java日志记录实现中附加到日志文件? - java

我得到了以下用于创建和管理Logger的类。每当执行代码和程序时,都会使用对静态getLogger()捕获块的调用进行记录。public class Log { private static final Logger logger = Logger.getLogger("MyLog"); public static void inicia…

在SpringFrame工作中进行日志记录的首选方法 - java

我进行了一些搜索,以查找有关如何使用Spring Framework进行日志记录的信息。当前,我们有一个除了system.out语句之外都没有登录的应用程序(非常糟糕的方式)。我想做的是添加日志记录,但是还希望能够在运行时使用JMX来控制日志记录。我们正在使用Rad 7.0 / WebSphere 6.1我很有趣地找出实现此目的的最佳方法(我认为可能有几种方…

使用java.util.properties存储ArrayList和HashMap - java

如何使用ArrayList存储HashMap和/或java.util.properties变量?如果不可能,可以使用其他什么类来存储应用程序配置? 参考方案 如果只需要将集合序列化为字符串,我强烈建议XStream。它使用反射将类序列化为XML。如果默认行为对您要序列化的类不起作用,则有文档,但是到目前为止,以下内容对我而言一直有效:XStream xstr…

java.util.HashSet是否不遵循其规范? - java

作为相对的Java noob,我很困惑地发现以下内容:Point.java:public class Point { ... public boolean equals(Point other) { return x == other.x && y == other.y; } ... } Edge.java:public class Edge…