【问题标题】:log4j2 configuration for Standard Java Project标准 Java 项目的 log4j2 配置
【发布时间】:2019-06-05 03:37:00
【问题描述】:

我正在尝试在标准 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");

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

【问题讨论】:

    标签: java logging log4j2


    【解决方案1】:

    为此,您应该拥有类似的东西。例如,您没有设置 appender 的类型。

    <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 必须在资源文件夹中,请检查

    【讨论】:

    • 不幸的是,这也没有奏效。还有其他建议吗?
    • 更改信息以进行调试:)
    • 仍然没有日志文件输出。我已经尝试将配置文件放在项目的每个目录中,但仍然没有。
    • 你能检查一下 Stack trase 吗?
    • @demonLaMagra 我又加了一点来检查答案,你能检查一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多