【问题标题】:loading log4j.properties for log4j2为 log4j2 加载 log4j.properties
【发布时间】:2016-10-09 11:33:42
【问题描述】:

请检查项目结构的附件图像,如果我定位 log4j2.properties 正确,请告诉我。 还可以查看我正在使用的 jar 版本。 我写了一个简单的程序来在控制台上打印日志。为了实现这一点,我编写了 log4j2.properties 文件如下。

根记录器选项

log4j.rootLogger=INFO,文件

log4j.appender.file=org.apache.logging.log4j.core.appender.ConsoleAppender

log4j.appender.file.Target=System.out

log4j.appender.file.Layout=org.apache.logging.log4j.core.layout.PatternLayout

log4j.appender.file.Layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

主程序如下。(如图所示)

package goldensource.track.logs;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.util.PropertiesUtil;

public class TestLogger {
    
    
    private Logger logger;
    private PropertiesUtil pu;
    TestLogger()
    {
        
        System.setProperty("log4j.configurationFile","log4j2.properties");
        logger =   LogManager.getLogger(TestLogger.class);
        logger.info("Yes I am there!");
        logger.debug("I am debugging!");
        logger.warn("giving you a warner!");
        
        
    }

    public static void main(String[] args) {
        TestLogger z = new TestLogger();
        

    }}

我已经创建了 PropertiesUtil 的引用,但无论如何我没有使用它。

当我执行这个程序时,控制台上没有显示任何内容。如我所知,我无法正确加载属性文件。

通过示例向我建议任何修改或替代方案。

提前致谢!

【问题讨论】:

    标签: java logging log4j2


    【解决方案1】:

    如果没有任何关于您收到的错误的反馈,我可以猜测其中一个问题是文件名。您应该在设置系统属性时指定 log4j2.properties 文件的绝对路径:

    System.setProperty("log4j.configurationFile","/absolute/path/to/log4j2.properties");
    

    通过这种方式,记录器系统将准确地知道在哪里可以找到您的文件。

    【讨论】:

    • 仍然无法正常工作。 System.setProperty("log4j.configurationFile",System.getProperty("user.dir")+"/resources/log4j.properties");我给出了获取 log4j.properties 的正确路径。
    • 顺便说一句,我创建了一个名为资源的文件夹并将属性文件保存在该文件夹中。
    • 当我删除 System.setProperty() 行时,我收到错误,因为 ERROR StatusLogger No log4j2 configuration file found。使用默认配置:仅将错误记录到控制台。所以我将该文件重命名为 log4j.configurationFile 但仍然无法正常工作
    • 设置属性后,您可以检查它的值,尝试使用 System.getProperty("log4j.configurationFile") 执行此操作并使用 System.out.println 将其打印到控制台() 以便您检查路径是否正确。
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多