Tec*_*nch 3 java web-applications log4j2
如何使用简单的Java Web应用程序配置Log4j2?我在apache网站上浏览了该教程,但没有提供任何有关Web应用程序的简单示例。我在有记录器静态变量的独立应用程序中使用了它。但是在Servlet中,我认为我们不能有实例变量。我们应该在doPost内部使用静态变量吗?
另外,指向所有步骤的已配置log4j2 Web应用程序或教程的任何指针都将有所帮助,因为我找不到合适的向导。
我正在Tomcat 6.0服务器上运行。
Servlets 3.0环境
正是这样简单的把log4j2.xml成WEB-INF/classes。
从文档
短故事 Log4j 2在Servlet 3.0和更新的Web应用程序中“有效”。它能够在应用程序部署时自动启动,并在应用程序取消部署时自动关闭。
Servlets 2.5环境
如果在Servlet 2.5 Web应用程序中使用Log4j,或者使用isLog4jAutoInitializationDisabled上下文参数禁用了自动初始化,则必须在部署描述符中或以编程方式配置Log4jServletContextListener和Log4jServletFilter。过滤器应匹配任何类型的所有请求。侦听器应该是您的应用程序中定义的第一个侦听器,过滤器应该是应用程序中定义和映射的第一个过滤器。使用以下web.xml代码可以轻松完成此操作:
<listener>
<listener-class>org.apache.logging.log4j.core.web.Log4jServletContextListener</listener-class>
</listener>
<filter>
<filter-name>log4jServletFilter</filter-name>
<filter-class>org.apache.logging.log4j.core.web.Log4jServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>log4jServletFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
<dispatcher>ASYNC</dispatcher>
<!-- Servlet 3.0 w/ disabled auto-initialization only; not supported in 2.5 -->
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
然后编写配置选项:
<context-param>
<param-name>log4jContextName</param-name>
<param-value>myApplication</param-value>
</context-param>
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>file:///etc/myApp/myLogging.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8123 次 |
| 最近记录: |