来源:http://hi.baidu.com/eredlab/blog/item/f6c1a5efe44a1af9cf1b3e17.html

写在最前面:
log4j是一个应用非常广泛的Java日志组件。我们可以方便的借助它将日志信息输出到控制台、文件、数据库等甚至可以通过扩展以流的方式输出到任何存储媒介中。

本文要解决的问题:
如何在log4j.properties文件中使用相对路径?缺省情况下我们只能在log4j.properties中配置绝对路径。这样以来,我们在系统部署、开放环境移植等环节就会带来很大的不便,需要将路径改来改去。因此,我们可以使用下面的办法来实现在log4j.properties中使用相对路径:

1、实现一个Servlet

/**

* Log4J初始化

* @author XiongChun

* @since 2011-04-26

*/

public class Log4jInitServlet extends HttpServlet {

/**

* Servlet初始化

*/

public void init(ServletConfig config) throws ServletException {

String root = config.getServletContext().getRealPath("/");

String log4jLocation = config.getInitParameter("log4jLocation");

System.setProperty("webRoot", root);

if (G4Utils.isNotEmpty(log4jLocation)) {

PropertyConfigurator.configure(root + log4jLocation);

}

}

2、web.xml加载这个servlet

<!-- 配置Log4j -->

<servlet>

<servlet-name>log4jInit</servlet-name>

<servlet-class>org.eredlab.g4.rif.util.Log4jInitServlet</servlet-class>

<init-param>

<param-name>log4jLocation</param-name>

<param-value>WEB-INF/classes/log4j.properties</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

</servlet>

3、此时在log4j.properties中就可以使用相对路径了,如下:

#Rlogfile

log4j.appender.Rlogfile=org.apache.log4j.RollingFileAppender

log4j.appender.Rlogfile.layout=org.apache.log4j.PatternLayout

log4j.appender.Rlogfile.layout.ConversionPattern=%d %p [%c] - <%m>%n

log4j.appender.Rlogfile.File=${webRoot}/logs/eRedG4.log

log4j.appender.Rlogfile.MaxFileSize=2048KB

log4j.appender.Rlogfile.MaxBackupIndex=10

批注:写完才发现,其实这种方式用的也是绝对路径,只不过是用动态获取绝对路径的方法来达到类似相对路径的效果了。

如何在log4j.properties文件中使用相对路径相关推荐

  1. log4j.properties文件中的log4j.rootLogger重要性

    log4j.rootLogger is at the top of all the logger hierarchy, just like we have Object in java classes ...

  2. log4j.properties文件示例

    In log4j tutorial, we saw how to use log4j xml based configuration. But log4j.xml is verbose, so log ...

  3. SpringMVC通过注解方式读取properties文件中的值

    为什么80%的码农都做不了架构师?>>>    本方法是结合Java配置及XML配置来完成. 首先定义XML配置文件 app.xml: <?xml version=" ...

  4. SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码

    问题: 后台在springMVC中使用hibernate-validator做参数校验的时候(validator具体使用方法见GOOGLE),用properties文件配置了校验失败的错误信息.发现回 ...

  5. java的properties文件中的换行书写

    我们经常在properties文件中设置属性的时候,如果某一个属性的值太长,那么查看就不太方便,但是又不能直接的换行,否则读取属性的值的时候其换行部分就被忽略了.其实我们可以通过增加一个\符号来达到换 ...

  6. Java中的properties文件中的key不能使用项目中的接口名和Java文件名

    Java中的properties文件中的key不能使用项目中的接口名和Java文件名,否则在反射生成实体类的时候会出现报错的情况.

  7. Properties 文件中字符串加了引号

    2019独角兽企业重金招聘Python工程师标准>>> Properties 文件中字符串加了引号,导致获取到的值多了引号,小小失误却导致大错误. 谨记. 转载于:https://m ...

  8. 使用java代码获取yml及properties文件中的内容,获取值

    获取properties文件中的内容 最近做项目一些值需要放在配置文件中,一开始使用的是properties文件,我这里没有使用注解@Value获取. 获取: InputStream in = Mes ...

  9. Eclipse插件-properties文件中中文显示ASCII码

    Eclipse插件-properties文件中文显示ASCII码 参考博客:[eclipse]properties文件中文件显示ASCII码 1. 打开Eclipse的hellp=>Instal ...

最新文章

  1. Erlang之父给程序员的两点忠告 | 缅怀
  2. mybatis的缓存简说
  3. 微软肿么了?版本更新大提速。Visual Studio 2012再次更新
  4. 微信小程序之下拉加载和上拉刷新
  5. 《Visual Studio.NET Tips and Tricks》第一章的翻译
  6. 【汇总】C#数据类型及转换
  7. 2.请求安全-- 如何验证请求的唯一性
  8. 拍照手抖有救了!DeblurGAN消除运动模糊效果惊人 | 附论文+代码
  9. Python父与子的编程之旅 第八章答案
  10. applet java_在浏览器中运行java applet
  11. b5纸尺寸_标准a2纸尺寸是多少厘米,设计宣传手册尺寸有哪些
  12. 自己组装nas服务器万兆,万兆网络、装M.2 SSD的NAS服务器
  13. mysql 立方根函数_Java实现牛顿迭代法求解平方根、立方根
  14. 计算机网络IP地址分配
  15. 运维的职业发展方向有哪些?该如何规划?
  16. (PAT)BasiclLevel_c++ #1003 我要通过!(演绎法)
  17. 欢迎访问我的快站clone-5483e9466f404.kuaizhan.com
  18. 电子学:第009课——实验 7:研究继电器
  19. 深圳物联网培训:要想成为一名物联网工程师,需要学习哪些知识?
  20. /etc/lirc/lircd.conf

热门文章

  1. 博客园博客PDF生成器
  2. InstallShild的研究,msde2000,.netframwork,ScriptProject与ScriiptMSIProject的区别
  3. 报错显示从客户端检测到有潜在危险的Request.Form 值
  4. mysql数据库迁移到另一台电脑上
  5. C#实现实体类和XML相互转换
  6. python建模分析实操_R和Python在数据建模方面的风格差异分析(下)
  7. c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串
  8. FreeNOS源码编译
  9. QLineEdit的readonly、disable属性的区别
  10. Apicloud开发之V7包继承AppCompactActivity后云编译资源找不到的解决办法