使用SLF4j/log4j将日志存储到.log文件中

使用SLF4j/log4j将日志存储到.log文件中,log4j,slf4j,Log4j,Slf4j,我正在使用SLF4J,根据要求,我必须将日志存储到.log文件中。但是当我运行程序时,日志不会写入日志文件 类别: import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestSLF4J { // private static Logger _logger = LoggerFactory.getLogger(TestSLF4J.class); private stati

我正在使用SLF4J,根据要求,我必须将日志存储到.log文件中。但是当我运行程序时,日志不会写入日志文件

类别:

import org.slf4j.Logger;   
import org.slf4j.LoggerFactory;   


public class TestSLF4J {   

//  private static Logger _logger = LoggerFactory.getLogger(TestSLF4J.class);   
    private static Logger _logger = LoggerFactory.getLogger(TestSLF4J.class);   



    public static void main(String[] args) {   
        logger .debug("Sample debug message"); 
logger .info("Sample info message"); 
logger .warn("Sample warn message"); 
logger .error("Sample error message");   
    }   
}   
log4j.properties

log4j.appender.file=org.apache.log4j.RollingFileAppender   
log4j.appender.file.maxFileSize=100KB   
log4j.appender.file.maxBackupIndex=5  
log4j.appender.file.File=C:/checkLog.log   
log4j.appender.file.threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout   
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n   
log4j.rootLogger=DEBUG,file
我可以在控制台上看到信息、警告、错误,但不能看到调试值


有人能帮我把日志存储到checkLog.log文件中吗?

我刚刚试过你给的例子,它对我很有效。我要检查/尝试以下几点:

  • 检查是否可以写入C的根:-改为写入:

    log4j.appender.file.File=checkLog.log 
    
    要登录到当前文件夹,请执行以下操作:

  • 添加控制台记录器以查看其是否在控制台中工作:

    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.layout=org.apache.log4j.PatternLayout   
    log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    log4j.appender.file=org.apache.log4j.RollingFileAppender   
    log4j.appender.file.maxFileSize=100KB   
    log4j.appender.file.maxBackupIndex=5  
    log4j.appender.file.File=checkLog.log   
    log4j.appender.file.threshold=DEBUG
    log4j.appender.file.layout=org.apache.log4j.PatternLayout   
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    log4j.rootLogger=DEBUG,console,file
    
    当您运行应用程序时,您应该看到控制台和文件中的日志记录

  • 检查所有sl4j库是否都在路径中-在类路径上需要
    slf4j api
    slf4j-log4j12
    jar

  • 确保
    log4j.properties
    位于类路径上


希望这有帮助。

确保您只绑定了一个日志框架。如果您有多个日志框架jar,那么您可能查看输出

我有类似的问题,然后发现类路径有
slf4j-simple-1.7.5.jar
以及
log4j.jar
。所以日志输出只在控制台上写入。从类路径中删除第一个有帮助

同时检查控制台,您应该会收到警告/错误消息。