1

我正在开发一个由多个模块组成的应用程序,该模块将部署在 Wildfly 13 上。其中一个模块正在使用我的另一个项目作为 jar maven 依赖项。(包含在 pom 中)

期待

我希望我的依赖项使用它自己的 logback.xml 来登录它自己的文件。我希望应用程序使用它自己的 logback.xml 文件登录控制台和一个单独的文件而不是依赖项。

现在做什么

目前两个应用程序模块(com.test.app.console.ca.operation

其中包括 jar 依赖项和依赖项使用依赖项的 logback.xml 并且所有内容都记录在同一个文件中。这对我来说很奇怪,因为主应用程序中的其他模块(没有来自库 jar 的依赖)正确地登录到正确的文件中。

请帮我理解和解决这个问题?

有关项目的详细信息

两者都使用 logback 作为记录器。依赖项是一种安全实现,它将通信信息记录在一个文件中,该文件必须位于与应用程序日志不同的文件中。应用程序和依赖项都有一个经典的 maven 结构,资源文件夹中的 logback.xml 文件。

主要模块 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <property resource="application.properties" />
    <appender name="STDOUT"
        class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder 
            by default -->
        <encoder>
            <pattern>%d{ISO8601} [%thread] %-5level %logger - %msg %n</pattern>
        </encoder>
    </appender>
    <!--Application Log (Daily rolling file appender) -->
    <appender name="appCaLog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${jboss.server.log.dir}/main_modules_app.log</File>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${jboss.server.log.dir}/main_modules_app.log.%d{yyyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>%d{ISO8601} [%thread] %-5level %logger - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="com.test.app.console.ca.usermanagement"
        level="${cops.usermanagement.log.level}" additivity="false">
        <appender-ref ref="appCaLog" />
    </logger>

    <logger name="com.test.app.console.ca.operation"
        level="${cops.operation.log.level}" additivity="false">
        <appender-ref ref="appCaLog" />
    </logger>

    <logger name="com.test.app.console.ca"
        level="${cops.main.log.level}" additivity="false">
        <appender-ref ref="appCaLog" />
    </logger>

    <root level="INFO">
        <appender-ref ref="appCaLog" />
    </root>
</configuration>

依赖 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <appender name="STDOUT"
        class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder 
            by default -->
        <encoder>
            <pattern>%d{ISO8601} [%thread] %-5level %logger - %msg %n</pattern>
        </encoder>
    </appender>
    <!--Application Log (Daily rolling file appender) -->
    <appender name="dependencyCaCryptoLog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${jboss.server.log.dir}/dependency_module.log</File>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${jboss.server.log.dir}/dependency_module.log.%d{yyyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>%d{ISO8601} [%thread] %-5level %logger - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="com.test.app.console.ca.crypto"
        level="INFO" additivity="false">
        <appender-ref ref="dependencyCaCryptoLog" />
    </logger>

    <root level="INFO">
        <appender-ref ref="dependencyCaCryptoLog" />
    </root>
</configuration>
4

0 回答 0