在java中检索slf4j日志文件

时间:2015-10-02 12:17:59

标签: java log4j slf4j

我正在制作一个项目备份java应用程序,它需要创建一个邮件报告并每天发送它。我的想法是生成正文消息,并将电子邮件附加到应用程序日志中。 我使用slf4j记录器,并且我不知道如何使用记录器自动检索日志文件路径。

使用普通log4j似乎很容易,但我无法尝试从slf4j记录器中检索它。有人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:2)

没有SLF4J记录器这样的东西。 SLF4J是另一个日志框架(log4j,commons-logging,java.util.Log等)的外观。因此,SLF4J记录器始终只是其中一个受支持框架中记录器的包装器。看看你如何配置下面的记录器。

因此,在您的情况下,如果您将slf4j与log4j一起使用,请像往常一样查阅log4j.properties或log4j.xml以查找日志的位置。如果您尚未设置其中任何一个文件(或以其他方式初始化log4j),则表示您没有日志。

答案 1 :(得分:2)

最后这就是我所做的,似乎工作正常。 任何评论或评论将不胜感激!

private File getLogFile(){
    File file = null;
    Appender rightAppender = null;
    Enumeration<Appender> e = org.apache.log4j.Logger.getRootLogger().getAllAppenders();
    while(e.hasMoreElements()){
        Appender appender = (Appender)e.nextElement();
        if(appender instanceof FileAppender){
            rightAppender = appender;
        }
    }
    if(null != rightAppender){
        file = new File(((FileAppender)rightAppender).getFile());
    }
    return file;

}