我正在制作一个项目备份java应用程序,它需要创建一个邮件报告并每天发送它 . 我的想法是生成正文消息,并将电子邮件附加到应用程序日志中 . 我正在使用slf4j Logger ,我不知道如何使用 Logger 自动检索日志文件路径 .
使用普通log4j似乎很容易,但我无法试图从slf4j Logger 中检索它 . 有谁遇到过这个问题?
没有SLF4J Logger 这样的东西 . SLF4J是另一个日志框架(log4j,commons-logging,java.util.Log等)的外观 . 因此,SLF4J Logger 始终只是其中一个受支持框架中 Logger 的包装器 . 看看你如何配置下面的 Logger .
因此,在您的情况下,如果您将slf4j与log4j一起使用,请像往常一样查阅log4j.properties或log4j.xml以查找日志的位置 . 如果您尚未设置其中任何一个文件(或以其他方式初始化log4j),则表示您没有日志 .
最后这就是我所做的,它似乎工作得很好 . 任何评论或评论将不胜感激!
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; }
2 回答
没有SLF4J Logger 这样的东西 . SLF4J是另一个日志框架(log4j,commons-logging,java.util.Log等)的外观 . 因此,SLF4J Logger 始终只是其中一个受支持框架中 Logger 的包装器 . 看看你如何配置下面的 Logger .
因此,在您的情况下,如果您将slf4j与log4j一起使用,请像往常一样查阅log4j.properties或log4j.xml以查找日志的位置 . 如果您尚未设置其中任何一个文件(或以其他方式初始化log4j),则表示您没有日志 .
最后这就是我所做的,它似乎工作得很好 . 任何评论或评论将不胜感激!