2015年03月18日   码农之路   12,507 次浏览

一般我们在设置log4j日志目录的时候会这样设置:

${catalina.base}/logs/info.log

这样就把日志目录设置到tomcat中logs目录了。
关于catalina.base解释如下:
catalina.home指向公用信息的位置,就是bin和lib的父目录。
catalina.base指向每个Tomcat目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。
那么当我们需要使用其他的变量或者在程序中动态的修改日志文件位置的时候应该怎么办呢?
1、设置服务器的环境变量
设置方法参考tomcat\bin\catalina.bat文件中catalina.base设置方法
2、在JAVA服务启动的时候设置
public class Init extends HttpServlet {
     public void init(ServletConfig config) throws ServletException {
          System. setProperty(logs_dir, “d:/logs/”);
     }
}
3、在程序中动态修改
// 设置一个新的日志位置
System. setProperty(logs_dir, “d:/logs2/”);
// log4j.properties文件目录,我这里是通过参数配置实现的
String log4jFile = config.getInitParameter(“log4j” );
// 其实就是logs_dir目录变了后重新加载下log4j.properties
PropertyConfigurator. configure(
                    config.getServletContext().getRealPath( “/”) + log4jFile);
 
下面为应用中的实例:
public class Init extends HttpServlet {
     public void init(ServletConfig config) throws ServletException {
          // 将文件上传目录(NFS)作为日志存放目录解决多台服务器日志分散的问题
          System. setProperty(“log_url”, FileUtil.getLogPath(“”));
          // 从web.xml中获取参数值,找到log4j这个文件
          String log4jFile = config.getInitParameter(“log4j” );
          if (log4jFile != null) {
                PropertyConfigurator. configure(
                    config.getServletContext().getRealPath( “/”) + log4jFile);
          }
     }
}
 
web.xml:
     <servlet>
             <servlet-name >Init </servlet-name >
             <servlet-class >com.init.Init </servlet-class >
             <init-param >
                   <param-name >log4j </param-name >
                   <param-value >WEB-INF/classes/log4j.properties </param-value >
             </init-param >
             <load-on-startup >5 </load-on-startup >
      </servlet>
赞 赏
申明:除非注明,本站文章均为原创,转载请以链接形式标明本文地址。 如有问题,请于一周内与本站联系,本站将在第一时间对相关内容进行处理。
本文地址: http://www.yyjjssnn.cn/articles/701.html

>>> Hello World <<<

这篇内容是否帮助到你了呢?

如果你有任何疑问或有建议留给其他朋友,都可以给我留言。

:wink: :twisted: :surprised: :smile: :smile9: :smile8: :smile7: :smile6: :smile5: :smile56: :smile55: :smile54: :smile53: :smile52: :smile51: :smile50: :smile4: :smile49: :smile48: :smile47: :smile46: :smile45: :smile44: :smile43: :smile42: :smile41: :smile40: :smile3: :smile39: :smile38: :smile37: :smile36: :smile35: :smile34: :smile33: :smile32: :smile31: :smile30: :smile2: :smile29: :smile28: :smile27: :smile26: :smile25: :smile24: :smile23: :smile22: :smile21: :smile20: :smile1: :smile19: :smile18: :smile17: :smile16: :smile15: :smile14: :smile13: :smile12: :smile11: :smile10: :smile0: :sad: :rolleyes1: :redface: :razz: :question: :neutral: :mrgreen: :mad: :lol: :idea: :exclaim: :evil: :eek: :cry: :cool: :confused: :biggrin: :arrow:

友情链接: 程序员刘杨 刘杨
Copyright 2003~2018 保留所有权利 | 网站地图
备案号:湘ICP备14001005号-2

湘公网安备 43011102001322号