log4j2.properties创建日志文件但不写入日志文件

时间:2018-01-19 14:08:00

标签: java spring-boot log4j2

我正在使用带有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

2 个答案:

答案 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>