如何从两行java.util.logging输出中抑制日期行?
我使用的是Java默认记录器,现在它将大量无用的垃圾打印到输出中,下面是一个示例,这行代码:如何从两行java.util.logging输出中抑制日期行?,java,logging,java.util.logging,Java,Logging,Java.util.logging,我使用的是Java默认记录器,现在它将大量无用的垃圾打印到输出中,下面是一个示例,这行代码: log.info("Logging pointless information...") 将输出所有这些: Oct 26, 2011 9:37:57 PM java.util.logging.LogManager$RootLogger log INFO: Logging pointless information... 除了第二行,我什么都不需要知道。我怎样才能清除这些垃圾?我想要的只是简单的文本记
log.info("Logging pointless information...")
将输出所有这些:
Oct 26, 2011 9:37:57 PM java.util.logging.LogManager$RootLogger log
INFO: Logging pointless information...
除了第二行,我什么都不需要知道。我怎样才能清除这些垃圾?我想要的只是简单的文本记录。您需要使用它
public class BriefFormatter extends Formatter
{
public BriefFormatter() { super(); }
@Override
public String format(final LogRecord record)
{
return record.getMessage();
}
}
他们提出了几乎相同的问题:
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-Djava.util.logging.config.file=logging.properties
或者不管你的格式化程序是什么。然后添加如下所示的JVM参数:
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-Djava.util.logging.config.file=logging.properties
或者使用功能更强大的日志系统,如Logback或Log4j,它们具有预构建的格式化程序,可以节省一些代码。也许这是后来添加的,但至少在Java 7中,Java.util.logging.SimpleFormatter支持从系统属性获取其格式。此JVM参数将只打印第二行:
-Djava.util.logging.SimpleFormatter.format='%4$s: %5$s%6$s%n'
就我个人而言,我喜欢保留所有的日期/来源信息,但不要使用换行符(并使用更紧凑的国际日期格式):
FWIW,“无用信息”在任何大小或持续时间的程序中都非常有用。@DaveNewton-就我个人而言,我喜欢简洁地记录到控制台,详细地记录到文件(使用XML格式化程序)。所以我认为这两种形式都有很大的优点。你真的不知道你让我的生活变得有多好。由于不熟悉java,这为我节省了至少5个小时的工作时间。由于你今天的回答,成千上万的小婴儿、小猫和小猫被救了出来。谢天谢地的赞赏是正确的。这种方法记录整个原始记录,包括XML。实际上比SimpleFormatter要详细得多。