我第一次尝试使用 ServletContext 使用 Java Web Aaplication 进行日志记录。我没有收到任何日志文件。有人可以告诉我我没有做什么吗?
我的ServletContextListener:
@Override
public void contextInitialized(ServletContextEvent sce) {
ServletContext context = sce.getServletContext();
String prefix = context.getRealPath("/");
String file = "WEB-INF" + System.getProperty("file.separator") + "classes" + System.getProperty("file.separator") + "log4j.properties";
if (file != null) {
PropertyConfigurator.configure(prefix + file);
System.out.println("Log4J Logging started for application: " + prefix + file);
} else {
System.out.println("Log4J Is not configured for application Application: " + prefix + file);
}
}
我的 Web.xml:
<listener>
<listener-class>com.kollega.listener.KollegaContextListener</listener-class>
</listener>
Log4j.properties 文件:
log4j.logger.kollegalogger=DEBUG, C, fileappender
log4j.appender.fileappender=org.apache.log4j.RollingFileAppender
log4j.appender.fileappender.File=/WEB-INF/logs/kollega.log
log4j.appender.fileappender.MaxFileSize=500KB
我的测试 Servlet:
private final Logger log = Logger.getLogger("kollegalogger");
log.debug(">>> Connectition TO database Successful for Login");
Logger.getLogger(LoginServlet.class.getName()).log(Level.FATAL, ">>>>Connectition TO database Successful for Login");
我只获取调试的输出,但 WEB-INF/logs/kollega.log 中没有日志文件。我缺少什么吗?
编辑: *我从文件路径中删除了 ${appRootPath},日志正在 C:/WEB-INF/logs/kollega.log 中创建。我需要它在我的 WEB-INF 目录中*
最佳答案
试试这个。 Web 应用程序中的路径相对于 /WEB-INF
而不是 WEB-INF
String file = System.getProperty("file.separator")+"WEB-INF" + System.getProperty("file.separator") + "classes" + System.getProperty("file.separator") + "log4j.properties";
关于java - Log4j 不写入日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21830841/