文章出處

測試log4j的項目結構

Log4j.properties的路徑為    src/config/log4j

Log4j.properties文件的內容

下面定義日志輸出級別是 INFO,并且配置了2個輸出目的地,一個是A3,一個是console  
  
log4j.rootLogger = INFO,A3,CONSOLE  
  
//日志最低的輸出級別  
log4j.appender.A3.Threshold=INFO  
log4j.appender.A3.encoding=UTF-8  
//每天產生一個文件DailyRollingFileAppender    
log4j.appender.A3 = org.apache.log4j.DailyRollingFileAppender  
//file 屬性  指定產生日志文件的保存位置及文件名,這里是windows下的配置  
// c:/logtest/logtest.log,  
//公司項目在linux下的配置是/app/weblogic/applications/logs/sxvip_logs  
log4j.appender.A3.File=c:/logtest/logtest.log  
//當有日志時立即輸出,默認是true  
log4j.appender.A3.ImmediateFlush=true  
log4j.appender.A3.DatePattern='_'yyyy-MM-dd  
//日志布局方式  
log4j.appender.A3.layout=org.apache.log4j.PatternLayout  
//日志文件中日志的格式  
log4j.appender.A3.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n  
  
//這里使用org.apache.log4j.ConsoleAppender指定要把日志輸出到控制臺  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.Threshold=INFO  
//輸出目標是 控制臺  
log4j.appender.CONSOLE.Target=System.out  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n  

 

在Web應用中web.xml利用Spring配置log4j

在web.xml中添加配置  
<!-- 配置log4j配置文件的路徑,可以是xml或 properties(此參數必須配)-->   
下面使用了classpath 參數指定log4j.properties文件的位置,這樣log4j的配置文件就不用非要放到src的下面  
<context-param>  
   <param-name>log4jConfigLocation</param-name>  
 <param-value>classpath:config/log4j/log4j.properties</param-value>  
</context-param>   
使用spring的監聽器,當應用啟動時來讀取log4j的配置文件  
<listener>  
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
</listener>  

 

在java中使用log4j

import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;   
public class MyServiceParamAction extends BaseAdmAction{  
  
private static final Log log =   
LogFactory.getLog(MyServiceParamAction.class);  
  
  
public ActionForward NgCallServiceInfo(ActionMapping mapping, ActionForm form,  
    HttpServletRequest request, HttpServletResponse response) {  
    // 獲得登錄用戶信息,沒有登錄提示用戶需要重新登錄  
    log.info("我的服務查詢開始.....................................");  
    UserBean user = (UserBean) request.getSession().getAttribute("USER_INFO");  
    log.info("從session中獲取登錄用戶user                 "+user);  
    if (user != null) {  
        log.info("user.getMisisdn()            "+user.getMsisdn());   
. . .   
}  

 

當應用啟動時,這里就會根據log4j的配置(log4j.appender.A3.File=c:/logtest/logtestxxx.log)在c盤下產生日志文件

當訪問項目的資源時就會在該文件中添加日志信息

2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - 我的服務查詢開始...........

2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - 從session中獲取登錄用戶  user  null

2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - VIP 我的服務  查詢  結束........

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()