如何更改 tomcat 上的 log4j2 日志记录路径?
How to change log4j2 logging path on tomcat?
我正在 运行使用 spring-boot
在 tomcat
上使用网络应用程序。
如何动态更改 log4j2.xml
日志记录路径? (例如通过 jvm args,属性 文件,或者其他)?
到目前为止我配置日志xml如下:
<Configuration>
<Properties>
<property name="path">${bundle:application:log.path}</property>
</Properties>
</Configuration>
配置文件:
#application.properties:
log.path=d:/
现在我想动态地强制日志路径为例如 d:/log-test
,但不必修改我的 war
文件。因为在重新部署时我会丢失任何手动配置。
那么我怎样才能提供不同的日志记录路径呢?
我想 运行 同一台机器上的多个配置文件,因此环境或系统属性在这里对我没有用。
您可以通过提到的多种方式进行操作here
如果你想通过环境变量,那么你可以这样做:
${env:MY_LOG_PATH}
如果系统属性则:
${sys:MY_LOG_PATH}
正如已经建议的那样,使用 ${sys:LOG_PATH} 可能是最好的解决方案。您不必修改 war,但您必须 运行 一个用于开发的 tomcat 和一个单独的 tomcat 用于测试。然后只需放置 set CATALINA_OPTS 以在 setenv.sh 或 setenv.bat 中包含 -DLOG_PATH=/my/log/path 拥有一个真的没有多大意义tomcat 运行无论如何都要。
我正在 运行使用 spring-boot
在 tomcat
上使用网络应用程序。
如何动态更改 log4j2.xml
日志记录路径? (例如通过 jvm args,属性 文件,或者其他)?
到目前为止我配置日志xml如下:
<Configuration>
<Properties>
<property name="path">${bundle:application:log.path}</property>
</Properties>
</Configuration>
配置文件:
#application.properties:
log.path=d:/
现在我想动态地强制日志路径为例如 d:/log-test
,但不必修改我的 war
文件。因为在重新部署时我会丢失任何手动配置。
那么我怎样才能提供不同的日志记录路径呢?
我想 运行 同一台机器上的多个配置文件,因此环境或系统属性在这里对我没有用。
您可以通过提到的多种方式进行操作here
如果你想通过环境变量,那么你可以这样做:
${env:MY_LOG_PATH}
如果系统属性则:
${sys:MY_LOG_PATH}
正如已经建议的那样,使用 ${sys:LOG_PATH} 可能是最好的解决方案。您不必修改 war,但您必须 运行 一个用于开发的 tomcat 和一个单独的 tomcat 用于测试。然后只需放置 set CATALINA_OPTS 以在 setenv.sh 或 setenv.bat 中包含 -DLOG_PATH=/my/log/path 拥有一个真的没有多大意义tomcat 运行无论如何都要。