java - Log4j 不写入日志文件

标签 java log4j

我第一次尝试使用 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/

相关文章:

java - 使用 lambda 和流表达代码块的简洁方法

java - 适当的设计

java - 如何解决 'java.sql.SQLException: Column count doesn' t match value count at row 1' 错误?

java - Tomcat 7 上的 JSP 问题 : org. apache.jasper.JasperException:无法为 JSP 编译类

java - Java 中用于自定义日志级别的 Log4j 日志记录

java - Websphere liberty 配置文件错误 : 404 SRVE0190E

java - 使用 WebLogic 和 Log4j 交织事件

java - log4j 的自定义布局

java - logback 中的 MaxBackupIndex

java - 未找到 Log4J 属性文件