我面临的问题是,我有一个应用程序使用包含 logback.xml 的 jar 文件(jar1)(其日志文件具有目标文件夹),另一个应用程序也使用包含另一个 logback.xml 的 jar 文件(jar2) (其日志文件具有不同的目标文件夹)。对于第一个应用程序,我使用了一个带有 jar1 共享文件配置的类加载器。现在在这种情况下,日志正在合并。在第二个应用程序的第一个目标文件夹中创建了一些日志,反之亦然。我正在使用 WebSphere9。有没有办法在其特定的目标文件夹中创建日志文件,而不合并日志?
保留第一个类加载器,我尝试将第二个类加载器与 jar2 共享文件配置用于第二个应用程序。但在这种情况下,任何一个应用程序都可以工作。所以这个解决方案被排除了。
第一个应用程序的 logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<appender name="consoleAppender"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
</layout>
</appender>
<appender name="mainAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${USR_HOME}/yoda.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${USR_HOME}/yoda.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
</encoder>
<prudent>false</prudent>
</appender>
<root name="MAIN_LOGGER" level="ERROR" additivity="true">
<appender-ref ref="mainAppender" />
</root>
第二个应用程序的 logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<appender name="consoleAppender"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
</layout>
</appender>
<appender name="mainAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${AG_HOME}/kenobi.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${AG_HOME}/kenobi.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>50MB</maxFileSize>
</triggeringPolicy>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
</encoder>
<prudent>false</prudent>
</appender>
<root name="MAIN_LOGGER" level="ERROR" additivity="true">
<appender-ref ref="mainAppender" />
</root>