像这样使用 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,其中我们自己的logger输出至少需要50。
现在我不想看到 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 - 有没有办法从 java.util.logging.Logger 输出中删除信息行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304784/