未在 Web 应用程序中使用 log4j.xml 生成日志文件

log file not getting generated using log4j.xml in a web application

服务器上未生成日志文件。 服务器显示:

log4j:WARN 找不到记录器的附加程序。 log4j:WARN请正确初始化log4j系统。

我正在使用 log4j.xml :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} |[%t]| %p | %c{1} | %m%n"/>
        </layout>
    </appender>

    <appender name="file"
        class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="../logs/logFile.log"/>
        <param name="append" value="true"/>     
        <param name="maxFileSize" value="32MB" />
        <param name="maxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} |[%t]| %p | %c{1} | %m%n"/>
        </layout>
    </appender>
    <root>
        <priority value="DEBUG"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="file"/>  
    </root>
</log4j:configuration>

这是我对 log4j 的 servlet 初始化:

public class Log4jInitializer
   implements ServletContextListener
 {
   public void contextDestroyed(ServletContextEvent arg0)
   {}

   /** Initialize log4j context */
   public void contextInitialized(ServletContextEvent sce)
   {
     ServletContext context = sce.getServletContext();
     String log4jFile = context.getInitParameter("log4jFilePath");
     String fullPath = context.getRealPath("/") + log4jFile;
     PropertyConfigurator.configure(fullPath);

     Logger logger = LogManager.getLogger(Log4jInitializer.class.getName());
     logger.debug("Log4J initialized successfully");
   }
 }

我的web.xml如下:

<context-param>
        <description>log4J initializer</description>
        <param-name>log4jFilePath</param-name>
        <param-value>WEB-INF/log4j.xml</param-value>
    </context-param>
    <listener>
        <listener-class>com.util.Log4jInitializer</listener-class>
    </listener>

服务器上未生成日志文件。我正在使用 tomcat 6 来部署我的应用程序。

有人能帮忙吗?

您的配置是 XML,但您使用 PropertyConfigurator。试试 DOMConfigurator.