Web applications 使用Jetty和log4j设置外部webapp日志记录配置

Web applications 使用Jetty和log4j设置外部webapp日志记录配置,web-applications,log4j,classpath,jetty,Web Applications,Log4j,Classpath,Jetty,我在Jetty(版本6.1.25)中部署了一个打包为war的webapp。该web应用程序使用log4j。我希望能够通过war外部的配置文件配置webapp日志记录(即,不烧录) 我尝试使用自定义上下文WebAppContext,并使用一个指向log4j.properties文件的额外类路径属性,我想将该文件注入webapp类路径,但这不起作用 <Configure class="org.mortbay.jetty.webapp.WebAppContext"> <Set n

我在Jetty(版本6.1.25)中部署了一个打包为war的webapp。该web应用程序使用log4j。我希望能够通过war外部的配置文件配置webapp日志记录(即,不烧录)

我尝试使用自定义上下文WebAppContext,并使用一个指向log4j.properties文件的额外类路径属性,我想将该文件注入webapp类路径,但这不起作用

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  <Set name="contextPath">/quantel</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/quantel</Set>
  <Set name="extraClasspath">quantel/log4j.properties</Set>
</Configure>
有可能用Jetty这样做吗


提前感谢。

我已经调整了上面的xml配置,将包含log4j配置文件的文件夹添加到webapp类路径,而不仅仅是添加配置文件本身。它现在正在工作,但我不清楚为什么

我的工作配置如下所示:

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  <Set name="contextPath">/quantel</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/quantel</Set>
  <Set name="extraClasspath"><SystemProperty name="jetty.home" default="."/>/quantel</Set>
</Configure>

/广电
/webapps/quantel
/广电

如果只想将日志记录级别设置为调试,请在jvm启动参数上添加java选项:

vi ${jetty.base}/start.d/start.ini:

--exec
-Dlog4j.debug
如果希望在不访问WAR的情况下完全控制日志配置,还可以添加java选项:

--exec
-Dlog4j.configuration=file:resources/log4j.xml
另见:


类路径项必须是目录或JAR。log4j将在类路径的每个条目中查找log4j.properties文件。因此,如果您将'quantel/log4j.properties'放在类路径上,它将尝试将其视为一个jar,并在其中查找log4j.properties(这将失败)。相反,如果将'quantel'放在类路径上,它将在该目录中查找log4j.properties。
--exec
-Dlog4j.configuration=file:resources/log4j.xml