0

我有一个 FileHandler 设置:

Logger logger = Logger.getLogger(this.class.getName());
FileHandler handler = new FileHandler(myFile, true);
handler.setFormatter(new SimpleFormatter());
logger.addHandler(handler);
logger.setUseParentHandlers(false);

但是我的服务器是 UTC,所以在我的日志文件中,时间戳看起来像:Nov 9, 2012 5:12:17 PM

这在紧要关头很难理解,所以我想知道是否可能

1)将其转换为 24 小时制,所以至少我会看到17:12:17而不是5:12:17PM 2)改为使用不同的时区

我认为这可能与我如何设置格式化程序有关,但我只是不知道如何设置。

谢谢!

4

2 回答 2

0

我建议您阅读SimpleFormatter.format()的 javadoc,您可以通过应用程序日志配置文件中的 java.util.logging.SimpleFormatter.format 属性指定您自己的格式。

默认属性文件是 <Java home>\jre7\lib\logging.properties。复制它并将其放在您想要的任何位置。

Java Logging Overview也是一本不错的读物。

以下代码

System.setProperty(
   "java.util.logging.SimpleFormatter.format", "%4$s: %5$s [%1$tc]%n" );
Logger l = Logger.getLogger("");
l.warning( "Hello" );

输出

WARNING: Hello [ven. nov. 09 20:26:30 CET 2012]
于 2012-11-09T18:05:47.333 回答
0

我可以通过使用我找到的示例创建自己的格式化程序来使其工作:

自定义记录器格式化程序

于 2012-12-13T19:24:19.317 回答