web项目Log4j日志输出路径配置问题
来源:互联网 发布:淘宝网的营销模式是 编辑:程序博客网 时间:2024/06/06 09:45
问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽可能少的改动配置文件,最好修改实例名后可以不修改log4j的配置文件。
实现分析:一般实现上面需求,需要在修改完war包名称之外要再做下面配置:
1、修改每个实例名下web.xml中参数webAppRootKey为不同值。同一个tomcat下运行多个web应用时,该值相同的话,运行时会抛异常。
webAppRootKey
webApp.root
2、log4j配置文件日志输出路径修改
log4j配置文件中路径配置一般有三种方法:
(1)绝对路径法:直接配置为系统觉得路径;
(2)相对路径法:
log4j.appender.logfile.File=../logs/app.log,将日志记录到tomcat下的logs文件夹;
log4j.appender.logfile.File=logs/app.log,将日志记录到tomcat的bin目录下的logs文件夹;
(3)使用环境变量相对路径法:程序会优先找jvm环境变量,然后再找系统环境变量,来查找配置文件中的变量。
log4j.appender.logfile.File=
log4j.appender.logfile.File=
log4j.appender.logfile.File=
暂时没找到不修改log4j配置而实现上面需求的方法。在log4j配置文件中可以获取环境变量来配置,但变量里没有当前应用的名称(不能直接通过webApp.root,因为它在不同的实例名称不一样),尝试在web.xml中增加listener,获取应用名称,然后调用System.setProperty(“contextPath”, sce.getServletContext().getContextPath());将上下文设置到系统变量中在log4j应用,但多实例运行时每个实例都会改变该属性值。
结论,该问题的解决方法:
1、手动修改配置,修改war名称后手动修改web.xml和log4j配置文件,实现上述需求。
2、通过其它程序来进行批量修改,若bat或maven等在修改war包名称时,自动修改掉web.xml和log4j中相关配置。
- web项目Log4j日志输出路径配置问题
- web项目Log4j日志输出路径配置问题
- MAVEN项目使用log4j配置输出日志
- Log4j -日志的配置和路径问题
- mybatis配置log4j不输出日志问题
- web项目log4j日志配置和使用
- java web 项目配置日志框架log4j
- web项目log4j日志配置和使用
- LOG4J输出日志到web目录的相对路径
- LOG4J输出日志到web目录的相对路径
- log4j 日志路径配置
- log4j 日志路径配置
- Log4J日志输出配置
- log4j输出多个自定义日志文件,动态配置路径
- log4j输出多个自定义日志文件,动态配置路径
- log4j输出多个自定义日志文件,动态配置路径
- log4j输出多个自定义日志文件,动态配置路径
- log4j输出多个自定义日志文件,动态配置路径
- Zynq-Linux移植学习笔记之14-RapidIO驱动开发
- 容器的概念
- LINUX之用户态和内核态区别
- CodeForces
- java基础复习--复习总结10
- web项目Log4j日志输出路径配置问题
- URI和URL的区别
- Linux-常用命令记录表
- JSON数组的构造
- DevExpress GridControl的使用,DevExpress.XtraGrid.Views.Grid.GridView使用
- Linux NTP服务器配置
- Neo4j初探
- cocos2dx-3.3 导出自定义类到 lua 过程详解
- 智能路径技术设计(一期)