Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用log4j-web.jar在web应用程序中配置Log4j2_Java_Maven_Web_Log4j2 - Fatal编程技术网

Java 使用log4j-web.jar在web应用程序中配置Log4j2

Java 使用log4j-web.jar在web应用程序中配置Log4j2,java,maven,web,log4j2,Java,Maven,Web,Log4j2,我试图通过以下教程在我的Web应用程序中配置log4j2。我正在使用glassfish 4.1.1服务器和servlet版本3.1。我可以使用以下配置配置日志功能: log4j.properties # Root logger option log4j.rootLogger=INFO, consoleAppender, fileAppender # debug level logger log4j.logger.kumar.suraj.college.a

我试图通过以下教程在我的Web应用程序中配置log4j2。我正在使用glassfish 4.1.1服务器和servlet版本3.1。我可以使用以下配置配置日志功能:

log4j.properties

     # Root logger option
     log4j.rootLogger=INFO, consoleAppender, fileAppender

     # debug level logger
     log4j.logger.kumar.suraj.college.administration.login=DEBUG

     # Redirect log messages to console
     log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
     log4j.appender.consoleAppender.Target=System.out
     log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
     log4j.appender.consoleAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

     # Redirect log messages to a log file, support file rolling.
     log4j.appender.fileAppender=org.apache.log4j.DailyRollingFileAppender
     log4j.appender.fileAppender.File=E:\\DEVELOPMENT\\JAVA\\web-logs\\web-college-administration\\applicationLogs.log
     log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
     log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
属性文件位于src/main/resources文件夹中

web.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee   http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"   version="3.1">
       <display-name>College Administration</display-name>
       <!--     <context-param>
                    <param-name>log4jConfiguration</param-name>
                    <param-value>/log4j.properties</param-value>
                </context-param>is it required
         -->
       <!--from where is this class referenced in dependency without web -->
       <listener>
            <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
       </listener>
      <servlet>
          <servlet-name>loginServlet</servlet-name>
          <servlet-class>kumar.suraj.college.administration.login.LoginServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>loginServlet</servlet-name>
          <url-pattern>/login</url-pattern>
      </servlet-mapping>

      </web-app>
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
   <display-name>College Administration</display-name>
  <servlet>
      <servlet-name>loginServlet</servlet-name>
      <servlet-class>kumar.suraj.college.administration.login.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>loginServlet</servlet-name>
      <url-pattern>/login</url-pattern>
  </servlet-mapping>

  </web-app>
log4j的pom.xml依赖关系

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
主要的变化是logger变量的初始化和两个导入。rest所有配置保持原样。在本例中,我还能够在log4j-web.jar中找到web.xml中指定的侦听器类。仍然无法使用此配置进行日志记录


有人能帮我一下吗?或者告诉我我做错了什么?

好的,在对我前面提到的链接进行了更多的研究和重新阅读之后,我终于在我的web应用程序中配置了log4j2,现在我得到了预期的日志。现在我想提一下我做错了什么

如链接中所述

如果我使用Servlet3.0或更高版本,我不需要在部署描述符中注册Log4jServletContextListener类,它只需要在Servlet2.5或更低版本中注册。此外,如果遵守log4j2的命名约定,则不需要提供文件位置

另一个代替log4j2.properties的更改现在我使用log4j2.xml作为log4j2中属性文件的格式,与log4j1中使用的格式不同。感谢下面链接中给出的答案,帮助我解决了这个问题

有关当前支持的格式,请参阅链接

下面是我的部署描述符和log4j配置文件现在的外观:

web.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee   http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"   version="3.1">
       <display-name>College Administration</display-name>
       <!--     <context-param>
                    <param-name>log4jConfiguration</param-name>
                    <param-value>/log4j.properties</param-value>
                </context-param>is it required
         -->
       <!--from where is this class referenced in dependency without web -->
       <listener>
            <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
       </listener>
      <servlet>
          <servlet-name>loginServlet</servlet-name>
          <servlet-class>kumar.suraj.college.administration.login.LoginServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>loginServlet</servlet-name>
          <url-pattern>/login</url-pattern>
      </servlet-mapping>

      </web-app>
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
   <display-name>College Administration</display-name>
  <servlet>
      <servlet-name>loginServlet</servlet-name>
      <servlet-class>kumar.suraj.college.administration.login.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>loginServlet</servlet-name>
      <url-pattern>/login</url-pattern>
  </servlet-mapping>

  </web-app>

学院管理
罗金瑟夫莱特酒店
kumar.suraj.college.administration.login.LoginServlet
罗金瑟夫莱特酒店
/登录
log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xml>
    <Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
           <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="File" fileName="E:\\DEVELOPMENT\\JAVA\\web-logs\\web-college-administration\\applicationLogs.log">
           <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>    
        </File>
     </Appenders>
     <Loggers>
     <Root level="debug">
         <AppenderRef ref="Console"/>
         <AppenderRef ref="File"/>
     </Root>
     </Loggers>
     </Configuration>

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xml>
    <Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
           <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="File" fileName="E:\\DEVELOPMENT\\JAVA\\web-logs\\web-college-administration\\applicationLogs.log">
           <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>    
        </File>
     </Appenders>
     <Loggers>
     <Root level="debug">
         <AppenderRef ref="Console"/>
         <AppenderRef ref="File"/>
     </Root>
     </Loggers>
     </Configuration>