根据系统属性、环境变量动态设置log4j2日志路径 您所在的位置:网站首页 log4j2配置文件名参数 根据系统属性、环境变量动态设置log4j2日志路径

根据系统属性、环境变量动态设置log4j2日志路径

2024-07-18 07:18| 来源: 网络整理| 查看: 265

1、根据环境变量env设置 ${env:LogHomeRoot} 2、根据系统属性sys设置 ${sys:LogHomeRoot} 3、通过监听设置系统属性实现

1> 编写监听类

ServletContextListener:当Servlet容器启动或终止Web应用时触发。

public class Log4j2ContextListener implements ServletContextListener{ @Override public void contextInitialized(ServletContextEvent arg0) { String LogHomeRoot = "/data/logs/test"; System.setProperty("LogHomeRoot", LogHomeRoot); } @Override public void contextDestroyed(ServletContextEvent arg0) { System.getProperties().remove("LogHomeRoot"); } }

2> web.xml配置监听

     配在ContextLoaderListener前面。尽可能配在前面,避免其他地方需要处理日志写入,但日志路径不完整。

com.test.Log4j2ContextListener

3> log4j2.xml

${sys:LogHomeRoot}

这样,tomcat启动后,spring加载之前设置好系统属性,加载log4j2时就可以取到动态变量值了。

 

顺便记录一下Eclipse设置Tomcat启动时参数:

Servers窗口tomcat双击打开,点击 Open launch configuration,打开设置页面,或者:

Run -> Run Configurations -> 选中Tomcat Server:

Arguments 标签 VM arguments 用于设置系统属性,比如:-DLogHomeRoot="/data/logs/test",多个参数之间空格分隔

Environment 标签 New 用于设置环境变量



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有