log4j日誌管理重要知識點備忘錄

#ConversionPattern參數的格式含義
#格式名 含義
#%c 輸出日誌信息所屬的類的全名
#%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,
#   比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:
2002-10-18221028
#%F 輸出日誌信息所屬的類的類名
#%l 輸出日誌事件的發生位置,即輸出日誌信息的語句處於它所在的類的第幾行
#%m 輸出代碼中指定的信息,如log(message)中的message
#%n 輸出一個回車換行符,Windows平臺爲“ ”,Unix平臺爲“ ”
#%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出
#   的,則爲DEBUG,依此類推
#%r 輸出自應用啓動到輸出該日誌信息所耗費的毫秒數
#%t 輸出產生該日誌事件的線程名

## LOGGERS ##
#這裏只設置一個logger但是它有很多的appender
log4j.rootLogger
=INFO,console,file,rollfile,dailyrollfile

## APPENDERS ##
# org.apache.log4j.ConsoleAppender 的寫法
log4j.appender.console
=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout
=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern
=%-40l [%c]:%p -%c- %m%n

# org.apache.log4j.FileAppender 的寫法 append屬性代表新的日誌是否覆蓋舊的
# 日誌,一般來說當然不用去覆蓋,設置爲true
log4j.appender.file
=org.apache.log4j.FileAppender
log4j.appender.file.append
=true
log4j.appender.file.file
=d:/logger.txt
log4j.appender.file.layout
=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern
=%d{yyyy-MM-dd hh:mm:ss} %F [%c]:%p -%c- %m%n

# org.apache.log4j.RollingFileAppender 的寫法  這個appender很實用,
# 有些日誌文件使用過於頻繁,會使文件變的很龐大,需要分割
# maxFileSize 可以寫 KB MB GB 一般我們設置100MB就可以了
# maxBackupIndex 設置備份文件的數目,一般我們設置2個,加上在用的,也就是全部利用滿
# 總是有3個日誌文件,用的時候用1KB做個小實驗就可以了

log4j.appender.rollfile
=org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.file
=d:/rolllogger.txt
log4j.appender.rollfile.maxFileSize
=1KB
log4j.appender.rollfile.maxBackupIndex
=2
log4j.appender.rollfile.layout
=org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.conversionPattern
=%d{yyyy-MM-dd hh:mm:ss} [%c]:%p -%c- %m%n

# org.apache.log4j.DailyRollingFileAppender 的寫法,這個是在上面的appender的基礎上更改進了一步
#  yyyy-MM,按月生成,生成時間爲每月最後一天午夜過後,例如test.txt在2005年7月31日午夜過後會被更名爲test.txt
.2005-07,然後重新生成。
#  yyyy-ww,按周生成,生成時間爲每週六午夜過後,例如test.txt在2005年8月13日午夜過後會被更名爲test.txt
.2005-33,33表示當年第33周。
#  yyyy-MM-dd,按天生成,生成時間爲每天午夜過後,例如2005年8月16日午夜過後,test.txt會被更名爲test.txt
.2005-08-16
#  yyyy-MM-dd-a,也是按天生成,但每天會生成兩次,中午12:00過後一次,午夜過後一次,例如test.txt在2005年8月16 日12:00過後會被更名爲test.txt
.2005-8-16-上午,午夜過後會被更名爲test.txt.2005-8-16-下午。
#  yyyy-MM-dd-HH,按小時生成,例如test.txt在2005年8月16日12:00過後會被更名爲test.txt
.2005-8-16-11
#  yyyy-MM-dd-HH-mm,按分鐘生成,例如test.txt在2005年8月16日12:00過後會被更名爲test.txt
.2005-8-16-11-59

log4j.appender.dailyrollfile
=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyrollfile.file
=d:/dailyrolllogger.txt
log4j.appender.dailyrollfile.datePattern
=yyyy-MM-dd-HH-mm
log4j.appender.dailyrollfile.layout
=org.apache.log4j.PatternLayout
log4j.appender.dailyrollfile.layout.conversionPattern
=%d{yyyy-MM-dd hh:mm:ss} [%c]:%p -%c- %m%n


log4j.logger.org.apache.struts2
=DEBUG
log4j.logger.org.springframework
=INFO

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.PropertyConfigurator;

public class Log4jServlet extends HttpServlet {

    
private static final long serialVersionUID = -5101132572746345807L;
    
    
// Initialize global variables
    public void init() throws ServletException {
        String prefix 
= this.getServletContext().getRealPath("/");
        String file 
= this.getInitParameter("log4j");
        System.out.println(
"載入log4j配置文件" + prefix + file);
        
if (file != null{
            PropertyConfigurator.configure(prefix 
+ file);
        }

    }


    
// Clean up resources
    public void destroy() {
    }

}

    <servlet>
        
<servlet-name>log4j</servlet-name>
        
<servlet-class>
            hdu.management.library528.log4j.Log4jServlet
        
</servlet-class>
        
<init-param>
            
<param-name>log4j</param-name>
            
<param-value>WEB-INFclasseslog4j.properties</param-value>
        
</init-param>
        
<load-on-startup>1</load-on-startup>
    
</servlet>

import org.apache.log4j.Logger;

import com.opensymphony.xwork2.ActionSupport;

public class CommonAction extends ActionSupport {


    
private static final long serialVersionUID = -8805271658849961866L;

    
private static final Logger log = Logger.getLogger(CommonAction.class);
    
    
public String execute(){
        log.debug(
"這裏是日誌");
        
return "success";    
    }


}


自己總結了log4j的常用方法,直接可以使用,其他還有以socket、telnet、郵件等形式,用到了再查其他資料好了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章