java - 为什么我的 log4j 消息没有出现在日志文件中?

标签 java spring log4j

我创建了log4j.properties文件并将其放在/src/main/resources/下,该文件的内容是:

log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

我想查看文件 log.out 中的日志,但是当我使用命令运行应用程序时:

java -jar myapp.jar -Dlog4j.debug

文件未创建。

这是 - 根据评论中的要求 - 我如何在代码中使用它:

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

private static final Logger LOG = LogManager.getLogger(MyClass.class);

及以后:

LOG.debug("some message");

LOG.error("some other msg", error);

最佳答案

请在下面找到实现:

log4j.properties

在`

src/main/resources

`

# Root logger option
log4j.rootLogger=INFO, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#outputs to Tomcat home
log4j.appender.file.File=D:/demo/logs/myapp/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

除此之外,我还在 class 中导入了 Logger

package org.nbk.demo;
import org.apache.log4j.Logger;
public class ServerStartup {
    private static final Logger logger = Logger.getLogger(ServerStartup.class);
    public void onApplicationEvent() {
            logger.info("Information Messages");
    }
}

关于java - 为什么我的 log4j 消息没有出现在日志文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54992409/

相关文章:

java - 刷新 JpaRepository 中的 saveAll

java - 我如何使用 telegram lib 在 java 中验证并向我的电话号码发送消息?

java - log4j:归档文件删除策略

java - 如何配置 log4j 按时间、大小和启动时滚动?

java - 从字符串中的给定单词中获取下两个单词,同时包含非字母数字字符的单词

java - Android Studio 安装报错: supplied java-home seems to be invalid

java - ITypeBinding 中基本类型的二进制名称

java - 我可以制作一个包含资源文件的 Android 库吗?

java - Spring中使用@Async和@Scheduled时检测线程状态

java - 在 log4j 中包含堆栈跟踪