在弹簧引导中使用“ log4j2.properties”进行配置有一定的局限性。Log4J 2最初发布时不支持通过属性文件进行配置。这是从Log4J的2.4这再次增加了属性文件的支持,但在提到一个完全不同的Syntax.As文档
从2.4版开始,Log4j现在支持通过属性文件进行配置。请注意,属性语法与Log4j 1中使用的语法不同。
从2.6版开始,不再需要该标识符列表,因为会在首次使用时推断出名称,但是,如果您希望使用更复杂的标识符,则仍必须使用该列表。如果列表存在,将使用它。
从Spring Boot版本1.4.0开始,使用的log4j2 api版本为2.6.2。请注意,spring-boot使用slf4j api支持多个基础Logging Framework。在将基于属性的配置用于log4j2时,似乎没有问题,而没有为slf4j绑定使用类路径依赖项。
使用基于XML(或yaml / json)的配置来实现相同配置并启用log4j2能够使用的所有功能将是有意义的。
这是具有相同属性的基于xml的配置。
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
<Property name="filename">export/home/apps/logs</Property>
</Properties>
<Appenders>
<Console name="STDOUT" target="SYstem_OUT">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
</Console>
<File name="LOGFILE"
fileName="${filename}/app-frontend.log">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Logger name="guru.springframework.blog.log4j2properties" level="debug">
<AppenderRef ref="LOGFILE"
level="debug" />
</Logger>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>