log4j配置每天生成一個日志文件


首先需要配置web.xml里面:

 <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.free.core.util.Log4j</servlet-class>
    <init-param>
      <param-name>log4j</param-name>
      <param-value>/WEB-INF/classes/logxml/log4j.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>

之后需要寫一個實現類

package com.free.core.util;

import java.io.File;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.xml.DOMConfigurator;
public class Log4j extends HttpServlet {
    private static final long serialVersionUID = -4046002537330149394L;

    public void init() {
        String path = this.getServletContext().getRealPath("/");
        String file = this.getInitParameter("log4j");
        String log4jPath = path + file;
        System.setProperty("home", path);
        DOMConfigurator.configure(log4jPath);
    }

}

 

logxml/log4j.xml配置deom:

<!-- 輸出到日志文件 按照文件大小 -->
    <appender name="log_roll" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 設置File參數:日志輸出文件名 -->
        <param name="File" value="${home}/logs/SystemOut.log" />
        <!-- 在DailyRollingFileAppender中可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小時)和minutely(每分鍾)六個頻度,這是通過為DatePattern選項賦予不同的值來完成的。DatePattern選項的有效值為: -->
        <param name="datePattern" value="'.'yyyy-MM-dd" />
        <!-- 是否使用BufferedWriter進行包裝,寫入數據量到達bufferSize之后寫入 -->
        <param name="bufferedIO" value="false" />
        <!-- 設置緩存大小 -->
        <param name="bufferSize" value="65536" /> 
        <!-- 設置是否在重新啟動服務時,在原有日志的基礎添加新日志 -->
        <param name="Append" value="false" />
        <!-- 設置文件大小 -->
        <param name="MaxFileSize" value="2000KB" />
        <!-- 設置文件備份 -->
        <param name="MaxBackupIndex" value="10" />
        <!-- 設置輸出文件項目和格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | MSG = %m |%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
            <param name="LevelMax" value="WARN" /> 
            <param name="LevelMin" value="TRACE" /> 
        </filter> 
    </appender>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM