如何在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文件中使用相对路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3DMAX怎么制作时尚创意的个性展台效果
- 下一篇: 数据仓库中两种数据模型的分析比较