Java log4j V2中log4j.properties的内容,并格式化记录器输出(例如添加时间戳)

Java log4j V2中log4j.properties的内容,并格式化记录器输出(例如添加时间戳),java,log4j,log4j2,Java,Log4j,Log4j2,我正在做一个Java项目,我已经将log4japiversion2集成到我的程序中(显然这是第一次,我不知道它是如何工作的,因此如果我的问题看起来很简单,不要怪我)。我的log4j.properties的内容如下: log4j.rootLogger=DEBUG,SAWAN log4j.appender.SAWAN=org.apache.log4j.ConsoleAppender log4j.appender.SAWAN.layout=org.apache.log4j.SimpleLayout

我正在做一个Java项目,我已经将
log4japiversion2
集成到我的程序中(显然这是第一次,我不知道它是如何工作的,因此如果我的问题看起来很简单,不要怪我)。我的log4j.properties的内容如下:

log4j.rootLogger=DEBUG,SAWAN
log4j.appender.SAWAN=org.apache.log4j.ConsoleAppender
log4j.appender.SAWAN.layout=org.apache.log4j.SimpleLayout
然后,我将log4j库导入到我的类中,出于调试目的,我编写了以下内容,并显示了输出

    //My Code
    PropertyConfigurator.configure("log4j.properties");
    logger.debug("Sample debug message");
    logger.info("Sample info message");
    logger.warn("Sample warn message");
    logger.error("Sample error message");
    logger.fatal("Sample fatal message");


    //Output 
    DEBUG - Sample debug message
    INFO - Sample info message
    WARN - Sample warn message
    ERROR - Sample error message
    FATAL - Sample fatal message
这意味着log4j工作正常。我希望如何更改输出的格式并向其添加时间戳。根据我对本网站中提出的其他问题的研究和参考,我知道我需要使用以下内容:

[%t] %-5p %c %x - %m%n
但是,一旦我将其添加到log4j.properties中,我就收到了一个错误。我的问题是,我应该在哪里指定日志输出的输出格式

以下是我导入的库:

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.PatternLayout;
值得一提的是,我已尝试将以下内容添加到log4j.properties:
log4j.appender.ConsoleAppender.layout.ConversionPattern=[%-5p]%d%c-%m%n


然而,我不断收到错误消息,我的log4j.properties有一些问题,当我删除它时,情况并非如此,它可以正常工作:)

您需要在类路径上自动获取一个名为
log4j2.properties
的文件

来自Log4j2的文档:

Log4j能够在运行期间自动配置自身 初始化。当Log4j启动时,它将定位所有 ConfigurationFactory插件,并从 从最高到最低。交付时,Log4j包含四个 ConfigurationFactory实现:一个用于JSON,一个用于YAML,一个用于 一个用于属性,一个用于XML

Log4j将检查“Log4j.configurationFile”系统属性,并, 如果设置,将尝试使用 与文件扩展名匹配的ConfigurationFactory

  • 如果未设置系统属性,则属性ConfigurationFactory将 在类路径中查找log4j2-test.properties
  • 如果未找到此类文件,YAML配置工厂将在类路径中查找log4j2-test.YAML或log4j2-test.yml
  • 如果未找到此类文件,JSON ConfigurationFactory将在类路径中查找log4j2-test.JSON或log4j2-test.jsn
  • 如果未找到此类文件,XML ConfigurationFactory将在类路径中查找log4j2-test.XML
  • 如果找不到测试文件,properties ConfigurationFactory将在类路径上查找log4j2.properties
  • 如果无法找到属性文件,YAML ConfigurationFactory将在类路径上查找log4j2.YAML或log4j2.yml
  • 如果无法找到YAML文件,JSON ConfigurationFactory将在类路径上查找log4j2.JSON或log4j2.jsn
  • 如果无法找到JSON文件,XML ConfigurationFactory将尝试在类路径上找到log4j2.XML
  • 如果找不到配置文件,将使用DefaultConfiguration。这将导致日志输出转到控制台
  • 您可以在此处找到有关log4j2配置的所有文档:


    感谢您指出正确答案。

    您提供给
    PatternLayout
    的链接来自log4j1,而不是log4j2。请注意,您正在阅读正确的文档。log4j2允许根据页面使用属性进行配置。请参阅标题为“带属性的配置”的部分,但是文件名和语法不同。