首页 文章

如何将嵌入式Jetty服务器日志定向到文件?

提问于
浏览
0

当我在我的应用程序中启动Jetty服务器(即Jetty在此处嵌入)时,默认情况下所有日志都会重定向到StdErr . 我希望将日志重定向到文件 . 我怎样才能做到这一点 ?

谢谢你的帮助 .

1 回答

  • 0

    请尝试将此部分添加到您的jetty.xml(您可能需要根据需要进行修改) .

    <New id="ServerLog" class="java.io.PrintStream">
          <Arg>
            <New class="org.eclipse.jetty.util.RolloverFileOutputStream">
              <Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg>
              <Arg type="boolean">false</Arg>
              <Arg type="int">90</Arg>
              <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
              <Get id="ServerLogName" name="datedFilename"/>
            </New>
          </Arg>
        </New>
    
        <Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
        <Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
        <Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>
    

    还请看这个question . 它似乎与你的同一行 .

    [更新]:

    对于嵌入式jetty,您需要显式添加jetty.xml并以编程方式对其进行配置 . 示例代码:

    private static final String JETTY_CONFIG_LOCATION= "/etc/secured_jetty.xml";  
    <<Skipped>>
    URL jettyConfig = bundle.getResource(JETTY_CONFIG_LOCATION); 
    XmlConfiguration xmlConfig = new XmlConfiguration(jettyConfig); 
    Server root = (Server) xmlConfig.configure()
    

相关问题