我正在使用带有log4j2的Spring Boot 1.5.9,当我测试日志功能时,会创建日志文件,但不会将日志写入其中,而控制台记录器工作正常。请在下面找到pom.xml& log4j2.properties配置。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
log4j2.properties文件:
status = trace
name= properties_configuration
# Give directory path where log files should get stored
property.basePath = /logs/
# ConsoleAppender will print logs on console
appender.console.type = Console
appender.console.name = consoleLoggerAppender
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
# Specify the pattern of the logs
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %level [%t] [%c] [%M] [%l] - %msg%n
appender.appLogger.type = RollingFile
appender.appLogger.name = appLoggerAppender
appender.appLogger.fileName = ${basePath}/application_gui.log
appender.appLogger.filePattern = ${basePath}application_gui_%d{yyyyMMdd}.log.gz
appender.appLogger.layout.type = PatternLayout
appender.appLogger.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %level [%t] [%c] [%M] [%l] - %msg%n
appender.appLogger.policies.type = Policies
appender.appLogger.policies.time.type = TimeBasedTriggeringPolicy
appender.appLogger.policies.time.interval = 2
appender.appLogger.policies.time.modulate = true
appender.appLogger.strategy.type = DefaultRolloverStrategy
# Classes in this package or sub packages will use ConsoleAppender and RollingFileAppender for logging
logger.appLogger.name = appLogger
logger.appLogger.level = debug
logger.appLogger.additivity = false
logger.appLogger.appenderRef.rolling.ref = appLoggerAppender
logger.appLogger.appenderRef.console.ref = consoleLoggerAppender
答案 0 :(得分:0)
更改
logger.appLogger.name = appLogger
至
logger.appLogger.name = com.myCompany
并添加到文件的末尾
rootLogger.level = info
rootLogger.appenderRef.stdout.ref = consoleLoggerAppender
People还提到了早期log4j2版本和spring-boot的问题。
答案 1 :(得分:0)
示例xml配置文件如下:
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="LOG_PATTERN">
%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex
</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<!-- Rolling File Appender -->
<RollingFile name="FileAppender" fileName="logs/APIServer.log"
filePattern="logs/APIServer-%d{yyyy-MM-dd}-%i.log"
ignoreExceptions="false">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.yourloggername" level="debug" additivity="false">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender"/>
</Logger>
<Root level="info">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender"/>
</Root>
</Loggers>