在Tomcat 与weblogic 中的 日志(log4j) 配置系列三(log文件的存放路径)
2013-08-06 18:44
471 查看
前言
前面一直在说,如何读取到log4j 的配置文件 log4j.properties。接下来的探讨的是: log4j 里配置产生的log 文件的路径如何设置。
tomcat 还好。拿复杂点的 weblogic 来说,因为不解压war 档,这个路径该如何设置。
在上一篇
在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)
中也提到了,如果没有配置路径, logfile.log默认也会放到 base_domain目录下。当然你配置一个绝对路径,但是,这绝对是不被推荐的。
可以通过 ${param} /logfile.log 设置相对路径。
在
java 获取系统变量(环境变量和设置变量)
这一篇中, 有提到 log4j 的配置可以配置系统变量 。基于此, 配置 log4j 的相对路径的方法就有2种了。
方法一: 通过 servlet 初始化init() 方法中设置log_dir的系统变量
这个系统的变量名可以随便取, 只需要保证在 init 方法中和log4j 中使用的变量名一致就可以了。System.setProperty("log_dir", "C:\\Oracle\\Middleware\\user_projects\\domains\\base_domain\\logs");
当然, 这里配置的log_dir 不能使用绝对路径。
可以通过 getServletContext().getRealPath("/"); 等这样一些方法定位到一些相对路径。
当然这种配置方式,也可以直接设置配置文件中的 log4j.appender.logfile.File
String logFile = spath+"/" + ps.getProperty("log4j.appender.logfile.File"); ps.setProperty("log4j.appender.logfile.File",logFile); PropertyConfigurator.configure(ps);
方法二: 通过服务器环境变量
应对方法一的不便, 还需要通过API获取一些路径。是否可以直接使用web 服务器里面的已经初始好的系统变量呢? 当然是可以。
在windows 环境下, 在weblogic 的 .cmd 文件中有
set J***A_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%
-D 这样的设置的变量, 是会被写入到系统变量的。
所以以上例子直接使用 ${platform.home} ; ${wls.home} 都可以。
在tomcat 中, 有类似${catalina.home} 等 。。。
相关文章推荐
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列三(log文件的存放路径)
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)
- 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)
- web项目Log4j日志输出路径配置问题 问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文
- log4j输出多个自定义日志文件,动态配置路径
- Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式,按天存放
- Log4j配置输出log文件的相对路径
- 在tomcat中配置log4j, 使tomcat中输出更详细的日志
- 在web中使用log4j时,配置日志文件的存放位置
- [转]tomcat6.0下的log4j日志文件配置过程
- log4j配置相对路径实现日志记录
- 巧为tomcat插件配置log4j日志,解决未报错启动不成功
- 配置log4j的日志文件为Tomcat的logs目录的方法
- log4j日志文件默认存放路径
- Log4j中配置日志文件相对路径
- log4j输出多个自定义日志文件,动态配置路径
- Tomcat下log4j日志文件 配置过程
- 在Spring的项目中配置Log4j存放日志文件到指定目录下