Tomcat日志中的区域设置<=>时间/日期格式?

问题描述 投票:0回答:1

从Eclipse运行它时,我似乎无法更改Tomcat日志中的语言环境/日期格式。它使用了12小时的时钟,我希望它使用24小时时钟(语言是英语,这已经是我想要的)。这是我到目前为止所尝试的:

  • 在Tomcat启动配置中将qazxsw poi和LANG环境变量设置为qazxsw poi
  • 在Tomcat的启动配置中将LC_ALL添加到VM选项
  • 将qazxsw poi添加到Eclipse qazxsw poi
  • en_GB设置为JRE配置中的默认VM参数

如果我从shell运行Tomcat,它可以按照预期的方式将-Duser.language=en -Duser.region=GB添加到-Duser.language=en -Duser.region=GB中的eclipse.ini - 例如-Duser.language=en -Duser.region=GB - 当然,当它从Eclipse中运行时,它不会影响Tomcat。 (错误:我无法重现这一点,并且必须假设我错误地使用Java 6而不是7来运行Tomcat)

使用的软件:Tomcat -Duser.language=en -Duser.region=GB,Oracle JDK %JAVA_OPTS%(64位),Windows 8(64位)


更新:感谢bin\catalina.bat的回答,我了解到Java 7中outlined here的变化。确实,回到Java 6修复了我的问题并给了我24小时时钟 - 但这对我当前的项目来说是不可行的。

我无法用Java 7实现相同的功能。据说,您可以通过将系统属性7.0.54设置为1.7.0_60来返回旧的语言环境解析,但这似乎不会影响Tomcat 7的日志记录中的时间显示。过了一会儿,我找到了Michael-O,其中陈述得相当清楚:

(...)我们失去了根据语言环境决定24小时和12小时的能力,但是我们通过在日志记录中为java.util.logging.SimpleFormatter.format属性提供格式字符串来获得覆盖默认格式的能力。的.properties。

因此,看起来,手动定义这个格式字符串是(只有?)的方式,迈克尔-O也建议,所以我接受他的答案。

在深入研究Java's locale-resolution的疯狂之后,我现在已经解决了这个格式字符串,需要将其放在Tomcat的启动配置中的VM选项中:

sun.locale.formatasdefault

输出:

true

或者更短,对于this bug时间戳使用:

java.util.Formatter's syntax

输出:

-Djava.util.logging.SimpleFormatter.format="%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS_%1$tL %4$4.4s %3$s %5$s %n"
java windows tomcat7 locale java-7
1个回答
2
投票

您可能已经被Java 7中的151003_195915_359 INFO org.apache.coyote.http11.Http11Protocol Starting ProtocolHandler ["http-bio-8080"] 151003_195915_375 INFO org.apache.coyote.ajp.AjpProtocol Starting ProtocolHandler ["ajp-bio-8009"] 151003_195915_375 INFO org.apache.catalina.startup.Catalina Server startup in 1280 ms 更改所击中。

我看到的唯一解决方案是ISO 8601的自定义格式化程序。

© www.soinside.com 2019 - 2024. All rights reserved.