我需要在现有的spring-boot项目的现有log4j2.xml中添加文件Appender。我这样做了,它为指定的每个记录器生成了两个日志文件,即我只添加了根级别记录器,然后也生成了两个文件。 当我搜索它时,我发现在Spring项目中应该使用log4j2-spring.xml而不是Log4j2.xml,这可能是生成重复日志文件的原因。
但是当我试图将我的log4j2.xml更改为log4j2-spring.xml时,它甚至没有考虑该文件,而是在选择其他可通过类路径访问的log4j2.xml,因为我已经添加了一些外部jar作为依赖项在此项目中,考虑了这些外部依赖性的log4j2.xml,而不是我的log4j2-spring.xml。有没有办法告诉它使用我的log4j2-spring.xml而不是任何log4j2.xml,或者有办法从任何依赖项中删除对log4j2.xml的使用。
我尝试对一个简单的spring-boot项目执行相同的操作,并且按预期方式工作,但是当我尝试在我的多模块maven项目中执行相同操作时,则无效。
有人可以问我上述要求的方式吗?
这是我的pom。
`
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" monitorInterval="60">
<Properties>
<Property name="log-path">${sys:app.log.path}</Property>
<Property name="archive">${log-path}/archive</Property>
<Property name="appName">${sys:spring.application.name}</Property>
<Property name="envName">${sys:app.env.name}</Property>
</Properties>
<Appenders>
<Console name="Console-Appender" target="SYSTEM_OUT">
<PatternLayout>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS}{GMT} [%-5level] [%t] %c{1} - %msg%n
</pattern>
<charset>US-ASCII</charset>
</PatternLayout>
</Console>
<File name="File" fileName="${log-path}/${appName}-${envName}--${date:yyyy-MM-dd-HH-mm-ss-SSS}.log" append="true">
<PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
</File>
</Appenders>
<Loggers>
<Root level="INFO" additivity="false">
<AppenderRef ref="Console-Appender" level="WARN" />
<AppenderRef ref="File" level="INFO" />
</Root>
<Logger name="com.tmo.eus" level="INFO" additivity="false">
<Appender-ref ref="Console-Appender" />
</Logger>
</Loggers>
</Configuration>
`