【问题标题】:Storing log into .log file using SLF4j/log4j使用 SLF4j/log4j 将日志存储到 .log 文件中
【发布时间】:2010-10-19 10:02:04
【问题描述】:

我正在使用 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 文件中??

【问题讨论】:

    标签: log4j slf4j


    【解决方案1】:

    我刚刚尝试了您提供的示例,它对我来说效果很好。我会检查/尝试几件事:

    • 检查是否可以写入 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-apislf4j-log4j12 jar

    • 确保log4j.properties 在类路径中

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      Also check console, you should be getting a warning/error message.

      【讨论】:

        猜你喜欢
        • 2012-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        • 2017-04-26
        相关资源
        最近更新 更多