繁体   English   中英

Log4j不写入日志文件

[英]Log4j Not Writing Log File

我试图使用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");

我只是获取DEBUG的输出,但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";

将属性文件放置在您的类文件所在的类路径中或WEB-INF/classes ,然后可以按如下所示轻松加载它:

PropertyConfigurator.configure("log4j.properties");**

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM