如何在log4j.properties文件中使用相对路径
來源:http://hi.baidu.com/eredlab/blog/item/f6c1a5efe44a1af9cf1b3e17.html
寫在最前面:
log4j是一個應(yīng)用非常廣泛的Java日志組件。我們可以方便的借助它將日志信息輸出到控制臺、文件、數(shù)據(jù)庫等甚至可以通過擴(kuò)展以流的方式輸出到任何存儲媒介中。
本文要解決的問題:
如何在log4j.properties文件中使用相對路徑?缺省情況下我們只能在log4j.properties中配置絕對路徑。這樣以來,我們在系統(tǒng)部署、開放環(huán)境移植等環(huán)節(jié)就會帶來很大的不便,需要將路徑改來改去。因此,我們可以使用下面的辦法來實(shí)現(xiàn)在log4j.properties中使用相對路徑:
1、實(shí)現(xiàn)一個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
批注:寫完才發(fā)現(xiàn),其實(shí)這種方式用的也是絕對路徑,只不過是用動態(tài)獲取絕對路徑的方法來達(dá)到類似相對路徑的效果了。
總結(jié)
以上是生活随笔為你收集整理的如何在log4j.properties文件中使用相对路径的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3DMAX怎么制作时尚创意的个性展台效果
- 下一篇: Java怎么实现经典游戏泡泡堂