好吧,我有3个spring配置文件:dev,prod,test,我想在不同的配置文件中使用不同的log4j2配置。 我检查了spring-boot reference并按照它说的方式进行了检查。 但是当我运行spring应用程序时,我只得到下面的日志:
2018-03-05 09:52:32,194 main ERROR Error processing element SpringProfile ([Configuration: null]): CLASS_NOT_FOUND
2018-03-05 09:52:32,194 main ERROR Error processing element SpringProfile ([Configuration: null]): CLASS_NOT_FOUND
我用谷歌搜索并堆栈溢出了错误日志,并且仍然无法找到springProfile
标记无效的答案。
这是我的log4j2-spring.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<SpringProfile name="prod">
<Appenders>
<RollingFile name="RollingFile"
fileName="/home/prod/service.log"
filePattern="/home/prod/service.log.%d{yyyyMMddHH}"
append="true">
<PatternLayout pattern="[%level][%d{yyyy-MM-dd'T'HH:mm:ss.SSSXX}][%l] %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</SpringProfile>
<SpringProfile name="!prod">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="[%level][%d{yyyy-MM-dd'T'HH:mm:ss.SSSXX}][%l] %msg%n" />
</Console>
<File name="File" fileName="./logs/service.log" append="false">
<PatternLayout pattern="[%level][%d{yyyy-MM-dd'T'HH:mm:ss.SSSXX}][%l] %msg%n" />
</File>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="File"/>
<!--When WIP, you could uncomment the next line to show log to console.-->
<!--<AppenderRef ref="Console"/>-->
</Root>
</Loggers>
</SpringProfile>
</Configuration>
答案 0 :(得分:1)
Apache Log4J2与Spring Framework之间没有关系(or at least not that I know)。
您使用的SpringProfile
标记也不存在于Log4J2的XML架构中。
您可以使用播放,使用不同的Spring Profile配置和不同的Log4J2配置。另一方面,Logback和Log4J2(几乎完全)是不同的库,用于记录目的。