log4j2未写入日志文件

时间:2019-08-07 18:33:33

标签: log4j2

我正在尝试使用两个记录器。一个控制台日志和一个文件日志。问题是fileLoGGER没有写入文件。

    

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <ApplicationInsightsAppender name="aiAppender">
        </ApplicationInsightsAppender>

        <!-- file appender -->
        <RollingFile name="LogToFile" fileName="..\standalone\log\app.log"
            filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c{1} - %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="5 MB" />
            </Policies>
        </RollingFile>

    </Appenders>
    <Loggers>
        <Logger name="fileLogger" level="debug" additivity="false">
            <AppenderRef ref="LogToFile" />
        </Logger>

        <Logger name="consoleLogger" level="trace" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>

        <Root level="trace">
            <AppenderRef ref="Console" />
            <AppenderRef ref="aiAppender" />
            <AppenderRef ref="LogToFile" />
        </Root>
    </Loggers>
</Configuration>

私有静态最终Logger LOGGER = LoggerFactory             .getLogger(“ consoleLogger”);

private static final Logger fileLOGGER = LoggerFactory
        .getLogger("fileLogger");

fileLOGGER.debug("some string");

请帮助。谢谢

1 个答案:

答案 0 :(得分:0)

我认为您的配置没有问题。您正在使用日志文件的相对路径,这意味着它将相对于当前工作目录(启动应用程序的目录)。因此,该文件应位于一个名为standalone的目录中,从该目录开始向上一个目录。但是,很可能log4j没有该目录的权限。

我建议您确保自己拥有

<Configuration status="debug" ..

已指定,以便您可以查看log4j在何处创建文件。