标准Java项目的log4j2配置

时间:2019-01-10 09:40:20

标签: java logging log4j2

我正在尝试在标准Java应用程序中设置log4j2。

我已经在线上登录了许多教程,但是它们都基于使用Maven项目,就像我使用SDK 1.8来使用Standard Vanilla Java一样。该应用程序没有Main Class作为起点,因为该应用程序是另一个执行已构建的.jar的应用程序的插件。

我有一个适合我需要的日志文件,并且相信我已经在代码中正确设置了Logger的实例。

我位于src文件夹中的配置文件。项目结构如下:

Project Root
    - src
        - UI
        - Errors
            - error classes go here
        - Reports
            - report classes go here
        - Utilities
            - utility classes go here
        - CapitalReportsApplication - (This is the starting point of the application)
        - resources
            - log4j2.xml

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <File name="MyFile" fileName="all.log" immediateFlush="false" append="false">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>

类文件记录器初始化

private static Logger log = LogManager.getLogger(CapitalReportsApplication.class.getName());
log.info("This is a message");

从客户端应用程序运行插件时,我获得了所有预期结果,但没有日志文件。

1 个答案:

答案 0 :(得分:0)

为此,您应该有类似的东西。例如,您无需设置附加程序的类型。

<appender name="rollingFile" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${LOG_DIR}/application.log" />
    <param name="MaxFileSize" value="10MB" />
    <param name="MaxBackupIndex" value="5" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n" />
        </layout>
</appender>

属性可能类似于(log4j.properties):

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=${LOG_DIR}/application.log
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.rollingFile.MaxBackupIndex=5
log4j.appender.rollingFile.append=true

log4j.rootCategory=ALL, rollingFile

log4j2.xml必须位于资源文件夹中,请检查