java.util.logging:如何禁止显示日期显示线

2022-09-02 05:27:48

我试图在java.util.logging中使用默认记录器时抑制日期线durinng日志记录的输出。例如,下面是一个典型的输出:

Jun 1, 2010 10:18:12 AM gamma.utility.application info

INFO: ping: db-time=2010-06-01 10:18:12.0, local-time=20100601t101812, duration=180000
Jun 1, 2010 10:21:12 AM gamma.utility.application info
INFO: ping: db-time=2010-06-01 10:21:12.0, local-time=20100601t102112, duration=180000

我想摆脱这些行,它们只是混乱我的日志输出。我该怎么做?Jun 1, 2010...


答案 1

从Java SE 7开始,有一个新的系统属性:java.util.logging.SimpleFormatter.format

同一属性也可以在 java.util.logging 属性文件 (logging.properties) 上进行配置。如果您是 Eclipse 用户,并且对控制台输出中的双行消息感到恼火,则可以按以下方式更改 jre logging.properties 文件(JDK_HOME/jre/lib/logging.properties):

java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

此处提供了一些示例格式:http://docs.oracle.com/javase/7/docs/api/index.html?java/util/logging/SimpleFormatter.html


答案 2

此问题是由父日志中的处理程序引起的。解决方案是从父日志中删除所有处理程序,然后添加自己的自定义处理程序。此代码从父日志中删除处理程序:

      for(Handler iHandler:log.getParent().getHandlers())
        {
        log.getParent().removeHandler(iHandler);
        }

推荐