我将一个webapp打包为战争,我在Jetty(版本6.1.25)中部署。 Web应用程序使用log4j。我希望能够通过战争外部的配置文件配置webapp日志记录(即没有烧毁)。
我尝试使用自定义上下文WebAppContext,其中一个额外的类路径属性指向我要注入webapp类路径的log4j.properties文件,但这不起作用。
<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>
我收到以下错误消息:
log4j:WARN No appenders could be found for logger (org.apache.commons.configuration.ConfigurationUtils).
log4j:WARN Please initialize the log4j system properly.
是否可以使用Jetty执行此操作?
提前致谢。
答案 0 :(得分:1)
我已经调整了上面的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>
答案 1 :(得分:0)
如果只想将日志记录级别设置为调试,请在jvm启动参数上添加一个Java选项:
vi ${jetty.base}/start.d/start.ini:
--exec
-Dlog4j.debug
如果您希望在不访问WAR的情况下完全控制日志记录配置,还可以添加Java选项:
--exec
-Dlog4j.configuration=file:resources/log4j.xml
另请参阅: