簡體   English   中英

Web應用程序中的Log4j2

[英]Log4j2 in Web application

如何使用簡單的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>

然后編寫配置選項:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM