获取码头登录使用正确的时区(Getting jetty to log with the correc

2019-08-31 09:35发布

我使用的码头8和我配置我的jetty.xml定制requests.log文件。

我的问题是,码头与在GMT时区的时间戳服务日志 - 我在英国,但它现在的夏令时(GMT + 1,又名,BST)。 可能是因为:

<Set name="LogTimeZone">GMT</Set>

如何获取码头使用任何服务器上的本地时间(这是正确的)服务日志? 简单地拔下<Set name="LogTimeZone">GMT</Set>没有做任何事情,我不想手动更改它的每一个6ish个月。

谢谢

Answer 1:

码头NCSARequestLog使用java.util.TimeZone中 。

GMT是NCSA格式的日志文件的默认,因为这是不同的日志分析工具的期望。

这听起来像你想的NCSA格式的日志,使用时区是夏令知道。 在这种情况下,你真的首选1,使用长格式时区适合您的系统和环境。

下面是关于英国伦敦的细节: http://www.timeanddate.com/worldclock/city.html?n=136

你需要的是将被系统识别的时区字符串。 意思是:

  • 时区标识符不使用GMT偏移量符号
  • 时区标识符不是三字母(见“三字母时区ID”的javadoc部分 )
  • 时区标识符是长形式。

创建一个简单的Java源文件并运行(您的系统上),下面的代码。

package time;

import java.util.TimeZone;

public class TZDump
{
    public static void main(String[] args)
    {
        TimeZone mytz = TimeZone.getDefault();
        System.out.printf("The TimeZone for this machine: %s%n", mytz);
        for (String string : TimeZone.getAvailableIDs(mytz.getRawOffset())) {
            System.out.println(string);
        }   
    }
}

所以,我的机器,这个报告...

SystemV/MST7MDT
US/Arizona
US/Mountain

我很幸运,因为这是列表很小,对我来说一个好处是,我住的地方特务飞龙节约时间没有观察到。 就我而言,我将使用"US/Arizona"

在你的情况,你会看到一个更大的列表(只是因为你是如此接近欧洲)。 选择开头的条目"Europe/" (我猜你的将是"Europe/London"

现在使用的是长形的时区标识符配置。

<Set name="LogTimeZone">Europe/London</Set>


文章来源: Getting jetty to log with the correct timezone
标签: logging Jetty