如何使用XML

时间:2016-07-13 14:48:22

标签: java logging jetty jetty-9

我无法使用以下代码使用本地时区时间生成Jetty请求日志请求,

   <Set name="LogTimeZone" type="java.lang.String">
       <Get class="java.util.TimeZone" name="default">
           <Get name="ID"/>
        </Get>
    </Set>

默认为GMT。 setLogTimeZone()(http://download.eclipse.org/jetty/9.3.9.v20160517/apidocs/org/eclipse/jetty/server/AbstractNCSARequestLog.html#setLogTimeZone-java.lang.String-)接受一个字符串参数,因此理想情况下应该可以工作。但是,它没有!虽然,当直接提供所需的字符串时,它可以正常工作,

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

码头日志(标准错误)似乎工作正常。这是一个已知的错误吗?

使用Jetty版本:9.1.1

1 个答案:

答案 0 :(得分:2)

getID()TimeZone.getDefault()的结果导入xml id属性,然后使用<Set>元素在<Ref>调用中引用它

在Jetty XML中如何工作的示例:

<强> foo.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" 
                           "http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure id="foo" class="java.lang.Object">
  <Get class="java.util.TimeZone" name="default">
    <Get id="defaultTimeZone" name="ID"/>
  </Get>
  <Get id="sysout" class="java.lang.System" name="out">
    <Call name="println">
      <Arg>
        <Ref refid="defaultTimeZone"/>
      </Arg>
    </Call>
  </Get>
</Configure>

在命令行上测试......

$ cd /path/to/jetty-dist-9.3.9.v20160517/
$ java -cp lib/jetty-util-9.3.9.v20160517.jar:lib/jetty-xml-9.3.9.v20160517.jar \
  org.eclipse.jetty.xml.XmlConfiguration foo.xml
2016-07-13 17:16:25.447:INFO::main: Logging initialized @121ms
America/Phoenix