Spring boot 如何从其他模块加载log4j2.xml配置文件

Spring boot 如何从其他模块加载log4j2.xml配置文件,spring-boot,log4j2,Spring Boot,Log4j2,我正在尝试将log4j2项目创建为一个lib模块 我的目标是每个应用程序项目(A、B、C,…)都可以从log4j2模块导入log4j2.xml配置(使用相同的log4j2.xml来删除重复代码),但如果没有加载log4j2,一切都不会发生 log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <Console name="Con

我正在尝试将log4j2项目创建为一个lib模块

我的目标是每个应用程序项目(A、B、C,…)都可以从log4j2模块导入log4j2.xml配置(使用相同的log4j2.xml来删除重复代码),但如果没有加载log4j2,一切都不会发生

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                    pattern="%style{%d{ISO8601}}{black} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%throwable" />
        </Console>

        <File name="JSONLogfileAppender" fileName="target/logfile.json">
            <JSONLayout compact="true" eventEol="true"/>
            <BurstFilter level="INFO" rate="2" maxBurst="10"/>
        </File>
        <Async name="AsyncAppender" bufferSize="80">
            <AppenderRef ref="JSONLogfileAppender"/>
        </Async>

        <Async name="AsyncAppenderRedis" bufferSize="80">
            <AppenderRef ref="REDIS"/>
        </Async>

        <RedisAppender name="REDIS"
                       key="log4j2-messages"
                       host="xx"
                       port="yy">
            <PatternLayout pattern="%level %msg"/>
            <RedisConnectionPoolConfig testWhileIdle="true"
                                       minEvictableIdleTimeMillis="60000"
                                       timeBetweenEvictionRunsMillis="30000"
                                       numTestsPerEvictionRun="-1"/>
            <RedisThrottlerConfig bufferSize="500"
                                  batchSize="100"
                                  flushPeriodMillis="1000"
                                  maxEventCountPerSecond="100"
                                  maxByteCountPerSecond="4194304"/>
        </RedisAppender>
    </Appenders>

    <Loggers>
        <!-- LOG everything at INFO level -->
        <Root level="info">
            <AppenderRef ref="AsyncAppenderRedis" />
            <AppenderRef ref="Console" />
            <AppenderRef ref="AsyncAppender" />
        </Root>

        <!-- LOG "net.mypackage" at TRACE level -->
        <Logger name="net.mypackage" level="trace"></Logger>
        <Logger name="org.springframework.cache" level="trace">
            <appender-ref ref="Console" />
        </Logger>
    </Loggers>

</Configuration>


您是否尝试过使用log4j2手册第#1项中描述的技术?@Panupong Kongarn:您是否能够借助此评论解决此问题?不确定log4j.configurationFile应该如何工作我放弃使用log4j2,而是使用logback,它使用slf4j作为默认值,并且可以使lib模块