簡體   English   中英

使用 Log4J2 生成空日志文件

[英]Generating empty log files with Log4J2

我已經查看了有關此事的現有問題,但仍然無法解決該問題。 這是我的帶有所有 log4j2 依賴項的 POM:

<dependencyManagement>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-bom</artifactId>
                <version>2.7</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
</dependency>

我的log4j2.properties文件的結構如下:

name=PropertiesConfig
property.filename = logs
appenders = console, file

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=target/myLog.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

最后,我在我的測試類中創建了記錄器,如下所示:

private Logger LOG = LogManager.getLogger(TestClass.class.getName());

雖然我可以將所有日志輸出到控制台,但我只返回 /target 下的一個空文件(如指定)。

你能幫忙嗎? 你在我的屬性文件中看到什么根本性的錯誤了嗎?

謝謝,

我。

因此,我設法將日志輸出到文件和控制台:

appender.file.type = File
appender.file.name = file
appender.file.fileName=target/myLog.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n

appender.out.type = Console
appender.out.name = out
appender.out.layout.type = PatternLayout
appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
rootLogger.level = all
rootLogger.appenderRef.file.ref = file
rootLogger.appenderRef.file.ref = out

對我來說,確切的問題講到這里,解決了我在糾正包名logger.file.name的關鍵log4j2.properties

示例:

logger.file.name=com.amazon.resources

空日志文件表明配置文件中存在錯誤。 就我而言,我的日志級別無效。 例如,我有:

<Loggers>
    <Root level="fine">
        <AppenderRef ref="Console" />
        <AppenderRef ref="RollingFile" />
    </Root>

但是fine不是有效的標准級別,當我將其更改為info時它起作用了。 正如文檔所述,日志級別應該是以下級別之一:

  • 致命的
  • 錯誤
  • 警告
  • 信息
  • 調試
  • 跟蹤
  • 全部

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM