Logging 每个上下文的jetty日志

Logging 每个上下文的jetty日志,logging,configuration,jetty,Logging,Configuration,Jetty,我在jetty服务器上运行了几个应用程序,每个应用程序在/contexts文件夹中都有自己的上下文文件,每个应用程序都指定自己的日志文件 启动jetty时,所有应用程序都会启动,所有日志文件都会创建,但所有输出都会发送到创建的最后一个日志文件,其他日志文件保持为空 描述每个上下文的日志记录的部分如下所示。 我试图确保每个上下文都有自己的ID和名称,但问题仍然存在 <New id="oGMRLog2" class="java.io.PrintStream"> <Arg

我在jetty服务器上运行了几个应用程序,每个应用程序在/contexts文件夹中都有自己的上下文文件,每个应用程序都指定自己的日志文件

启动jetty时,所有应用程序都会启动,所有日志文件都会创建,但所有输出都会发送到创建的最后一个日志文件,其他日志文件保持为空

描述每个上下文的日志记录的部分如下所示。 我试图确保每个上下文都有自己的ID和名称,但问题仍然存在

  <New id="oGMRLog2" class="java.io.PrintStream">
    <Arg>
      <New class="org.mortbay.util.RolloverFileOutputStream">
        <Arg><SystemProperty name="jetty.home" default="."/>/testlogs/std2.yyyy_mm_dd.log</Arg>
        <Arg type="boolean">false</Arg>
        <Arg type="int">90</Arg>
        <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT+2</Arg></Call></Arg>
        <Get id="oGM2ReqLogName" name="datedFilename"/>
      </New>
    </Arg>
  </New>
  <Call class="org.mortbay.log.Log" name="info"><Arg>Redirecting GM stderr/stdout to <Ref id="oGM2ReqLogName"/></Arg></Call>
  <Call class="java.lang.System" name="setErr"><Arg><Ref id="oGMRLog2"/></Arg></Call>
  <Call class="java.lang.System" name="setOut"><Arg><Ref id="oGMRLog2"/></Arg></Call>

/测试日志/std2.yyy\u mm\u dd.log
假的
90
格林尼治标准时间+2
将GM stderr/stdout重定向到
我开始怀疑问题出在
class=“java.lang.System”
中,打印流应该单独附加到这个上下文,而不是整个JVM

有人能告诉我什么是正确的方法吗?

(Web)基于上下文的日志记录可以通过将Jetty配置为使用+,然后使用配置配置logback来完成,该配置使用来自到的信息

记录在


甚至有一个示例项目显示了这一点,可在

Hi Joakim!你能说得具体点吗?我添加了MDC.put(“context”,request.getContextPath());到(org.eclipse.jetty.examples.logging.)MDCHandler.handle(),但上下文总是空的。因此,它不能用于任何筛选…@LiborJelinek您不能在
MDCHandler.handle()
期间使用
请求.getContextPath()
,因为没有上下文(尚未)。上下文将在流的稍后步骤中确定。