如何在log4j.properties文件中使用相对路径
来源: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文件中使用相对路径相关推荐
- log4j.properties文件中的log4j.rootLogger重要性
log4j.rootLogger is at the top of all the logger hierarchy, just like we have Object in java classes ...
- log4j.properties文件示例
In log4j tutorial, we saw how to use log4j xml based configuration. But log4j.xml is verbose, so log ...
- SpringMVC通过注解方式读取properties文件中的值
为什么80%的码农都做不了架构师?>>> 本方法是结合Java配置及XML配置来完成. 首先定义XML配置文件 app.xml: <?xml version=" ...
- SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码
问题: 后台在springMVC中使用hibernate-validator做参数校验的时候(validator具体使用方法见GOOGLE),用properties文件配置了校验失败的错误信息.发现回 ...
- java的properties文件中的换行书写
我们经常在properties文件中设置属性的时候,如果某一个属性的值太长,那么查看就不太方便,但是又不能直接的换行,否则读取属性的值的时候其换行部分就被忽略了.其实我们可以通过增加一个\符号来达到换 ...
- Java中的properties文件中的key不能使用项目中的接口名和Java文件名
Java中的properties文件中的key不能使用项目中的接口名和Java文件名,否则在反射生成实体类的时候会出现报错的情况.
- Properties 文件中字符串加了引号
2019独角兽企业重金招聘Python工程师标准>>> Properties 文件中字符串加了引号,导致获取到的值多了引号,小小失误却导致大错误. 谨记. 转载于:https://m ...
- 使用java代码获取yml及properties文件中的内容,获取值
获取properties文件中的内容 最近做项目一些值需要放在配置文件中,一开始使用的是properties文件,我这里没有使用注解@Value获取. 获取: InputStream in = Mes ...
- Eclipse插件-properties文件中中文显示ASCII码
Eclipse插件-properties文件中文显示ASCII码 参考博客:[eclipse]properties文件中文件显示ASCII码 1. 打开Eclipse的hellp=>Instal ...
最新文章
- Erlang之父给程序员的两点忠告 | 缅怀
- mybatis的缓存简说
- 微软肿么了?版本更新大提速。Visual Studio 2012再次更新
- 微信小程序之下拉加载和上拉刷新
- 《Visual Studio.NET Tips and Tricks》第一章的翻译
- 【汇总】C#数据类型及转换
- 2.请求安全-- 如何验证请求的唯一性
- 拍照手抖有救了!DeblurGAN消除运动模糊效果惊人 | 附论文+代码
- Python父与子的编程之旅 第八章答案
- applet java_在浏览器中运行java applet
- b5纸尺寸_标准a2纸尺寸是多少厘米,设计宣传手册尺寸有哪些
- 自己组装nas服务器万兆,万兆网络、装M.2 SSD的NAS服务器
- mysql 立方根函数_Java实现牛顿迭代法求解平方根、立方根
- 计算机网络IP地址分配
- 运维的职业发展方向有哪些?该如何规划?
- (PAT)BasiclLevel_c++ #1003 我要通过!(演绎法)
- 欢迎访问我的快站clone-5483e9466f404.kuaizhan.com
- 电子学:第009课——实验 7:研究继电器
- 深圳物联网培训:要想成为一名物联网工程师,需要学习哪些知识?
- /etc/lirc/lircd.conf
热门文章
- 博客园博客PDF生成器
- InstallShild的研究,msde2000,.netframwork,ScriptProject与ScriiptMSIProject的区别
- 报错显示从客户端检测到有潜在危险的Request.Form 值
- mysql数据库迁移到另一台电脑上
- C#实现实体类和XML相互转换
- python建模分析实操_R和Python在数据建模方面的风格差异分析(下)
- c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串
- FreeNOS源码编译
- QLineEdit的readonly、disable属性的区别
- Apicloud开发之V7包继承AppCompactActivity后云编译资源找不到的解决办法