日誌存到數據空中


以下爲log4j中的配置參數:
 
%m 輸出代碼中指定的消息

%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL

%r 輸出自應用啓動到輸出該log信息耗費的毫秒數

%t 輸出產生該日誌事件的線程名;

%n 輸出一個回車換行符,Windows平臺爲"\r\n",Unix平臺爲"\n"

%d 輸出日誌時間的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,
比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2008年10月18日22:10:28:832

%c  輸出所屬的類目,通常就是所在類的全名,如“iNotes.Default”;

%l  輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數
 
%L 輸出代碼中的行數;

%F 輸出代碼中的文件名;
 
要注意大小寫 

在Java工程下,日誌文件(log4j.properties)要放在src目錄下,在web工程中,日誌文件(log4j.properties)也要放在src根目錄下。


在Action中的代碼如下:
public class LoginUserAction extends Action { 
  private UserDao userDAO; 
  private static Logger log = Logger.getLogger(LoginUserAction.class); 
  /** 
    * 獲得UserDAO的對象 
    * @param userDAO 
    */
 
  public void setUserDAO(UserDao userDAO) { 
    this.userDAO = userDAO; 
  } 
  public ActionForward execute(ActionMapping mapping, ActionForm form, 
      HttpServletRequest request, HttpServletResponse httpservletresponse) 
      throws Exception { 
    // 設置request的字符集 
    request.setCharacterEncoding("utf-8"); 
     
     
    LoginUserForm loginform = (LoginUserForm) form; 
     
    log.warn("用戶:"+loginform.getUsername()+"登陸"+"        "+"IP:"+request.getRemoteAddr()); 
    //調用方法獲得一個LoginUserForm 
    loginform = (LoginUserForm)userDAO.getAccount(loginform); 
    return mapping.findForward("success"); 
  } 
    
}
 private static Logger log = Logger.getLogger(LoginUserAction.class);
log.warn("用戶:"+loginform.getUsername()+"登陸"+"    "+"IP:"+request.getRemoteAddr());
 


注意一下紅色的字,這兩行主要是與日誌關聯的,第一紅行是建立一個日誌對象,第二個紅行是要往數據庫中寫入的日誌。

在log4j.properties中的代碼:
log4j.rootLogger=WARN,DATABASE 

#直接使用log4j包中的文件 
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender 
#與數據庫建立連接 
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test 
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver 
log4j.appender.DATABASE.user=root 
log4j.appender.DATABASE.password=icy 
#指定要插入數據庫的格式,具體參數的格式看一開始給出的文檔 
log4j.appender.DATABASE.sql=INSERT INTO log4j (log_date, log_level, location, message) VALUES ('%d{ISO8601}', '%p', '%C,%L', '%m')
這樣以來就可以向數據庫中寫入日誌了。

本文出自 “喬磊的博客 學習 進步” 博客,請務必保留此出處http://sucre.blog.51cto.com/1084905/357105

發佈了35 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章