如何在tomcat上更改log4j2日志记录路径?

时间:2015-02-28 09:28:06

标签: java spring log4j spring-boot log4j2

我使用tomcatspring-boot上运行了一个网络应用程序。

如何动态更改log4j2.xml日志记录路径? (例如,通过jvm args,属性文件,或者)?

到目前为止,我按如下方式配置了log xml:

<Configuration>
    <Properties>
        <property name="path">${bundle:application:log.path}</property>
    </Properties>
</Configuration>

使用配置文件:

#application.properties:
log.path=d:/

现在我想动态强制日志路径到d:/log-test,但不必修改我的war文件。因为在重新部署时我会失去任何手动配置。

那么我怎样才能提供不同的日志记录路径?

我想在同一台机器上运行多个配置文件,因此环境或系统属性对我来说没用。

2 个答案:

答案 0 :(得分:2)

您可以通过提及here

的多种方式完成此操作

如果您想要环境变量,那么您可以执行以下操作:

${env:MY_LOG_PATH}

如果系统属性:

${sys:MY_LOG_PATH}

答案 1 :(得分:1)

已经建议使用$ {sys:LOG_PATH}可能是最好的解决方案。你不必修改战争,但你必须为dev运行一个tomcat,并为测试运行一个单独的tomcat。然后放置设置CATALINA_OPTS以在setenv.sh或setenv.bat中包含-DLOG_PATH = / my / log / path。无论如何,让一个tomcat同时运行真的不是很有意义。