如何禁用 log4j servlet 初始化?
How can i disable log4j servlet initialization?
场景如下:
我有一个现有的 Web 应用程序,它通过 servlet 初始化 log4j:
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.app.Log4jInitServlet</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/classes/log4j.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
不,我想通过传入的外部文件覆盖此初始化 log4j.configuration JVM ardument:-Dlog4j.configuration=file:/usr/local/log4j.xml
当我启动应用程序服务器时,我可以看到外部文件首先被拾取,但随后通过初始化 servlet 的内部文件将覆盖更改。
我的问题是如何通过 JVM 参数配置之王(最好)禁用 servlet 初始化,而不必修改应用程序 web.xml and/or 初始化 servlet?
或者有没有办法指定初始化的顺序?
谢谢
log4j init servlet 不是核心 log4j 的一部分。我假设您正在使用此处教程中建议的 init servlet https://logging.apache.org/log4j/1.2/manual.html
在这种情况下,您在 servlet 初始化文件参数中指定的任何文件都将用于初始化。
我认为不修改 web.xml 或 init servlet
就无法完成此操作
场景如下: 我有一个现有的 Web 应用程序,它通过 servlet 初始化 log4j:
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.app.Log4jInitServlet</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/classes/log4j.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
不,我想通过传入的外部文件覆盖此初始化 log4j.configuration JVM ardument:-Dlog4j.configuration=file:/usr/local/log4j.xml
当我启动应用程序服务器时,我可以看到外部文件首先被拾取,但随后通过初始化 servlet 的内部文件将覆盖更改。
我的问题是如何通过 JVM 参数配置之王(最好)禁用 servlet 初始化,而不必修改应用程序 web.xml and/or 初始化 servlet? 或者有没有办法指定初始化的顺序?
谢谢
log4j init servlet 不是核心 log4j 的一部分。我假设您正在使用此处教程中建议的 init servlet https://logging.apache.org/log4j/1.2/manual.html 在这种情况下,您在 servlet 初始化文件参数中指定的任何文件都将用于初始化。
我认为不修改 web.xml 或 init servlet
就无法完成此操作