的logback這是指我的博客文章的詳細信息是解決這一問題的可行解決方案。在瀏覽不同的黑客來使這個工作與log4j,我們已決定切換到Logback。我在webapp中使用了Logback jar的下列配置。
,其包括外部文件中的web應用程序內
甲的logback文件:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="10 seconds">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<contextName>${project.artifactId}</contextName>
<jmxConfigurator />
<include file="${logback.configuration.filepath}" />
</configuration>
${logback.configuration.filepath}
通過的準確路徑Maven的濾波期間更換,外部的配置文件的web應用(像/選擇/服務器/conf/loback.included.conf)。
然後,將logback.included.conf
的內容(該文件是projetct的一部分,與build-helper:attach-artifact
遞送,所以${project.artifactId}
被Maven的濾波期間也替換):
<?xml version="1.0" encoding="UTF-8" ?>
<included>
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>/var/log/server/${project.artifactId}.log</file>
<encoder>
<pattern>[@/%contextName] %date{ISO8601} [%-5level] %thread:[%logger] %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="file" />
</root>
</included>
唯一的限制,所包括的內容文件必須符合包裝者之一。事實上只是寫規則。
「但是,由於app1-ejb.jar和app2-ebj.jar都需要使用log4j,所以log4j.jar只能放在最高級別。」你不能只在每個WAR文件中包含一個log4j.jar嗎? – CodeClimber 2012-10-04 10:36:43