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

来源:互联网 发布:mac 最小化快捷键 编辑:程序博客网 时间:2024/05/22 02:26

首先需要配置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配置如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration><!-- 输出到日志文件 按照文件大小 -->    <appender name="log_roll" class="org.apache.log4j.RollingFileAppender">        <!-- 设置File参数:日志输出文件名 -->        <param name="File" value="${home}/logs/SystemOut.log" />        <param name="datePattern" value="'.'yyyy-MM-dd" />        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->        <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>    <appender name="log_roll_error" class="org.apache.log4j.RollingFileAppender">        <!-- 设置File参数:日志输出文件名 -->        <param name="File" value="${home}/logs/SystemErr.log" />        <param name="datePattern" value="'.'yyyy-MM-dd" />        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->        <param name="Append" value="true" />        <!-- 设置文件大小 -->        <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>    <!-- 输出到日志文件 每天一个日志 -->    <appender name="log_daily" class="org.apache.log4j.DailyRollingFileAppender">        <param name="File" value="${home}/logs/SystemOut.log" />        <param name="datePattern" value="'.'yyyy-MM-dd" />        <param name="Append" value="true" />        <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>    <appender name="log_daily_error" class="org.apache.log4j.DailyRollingFileAppender">        <param name="File" value="${home}/logs/SystemErr.log" />        <param name="datePattern" value="'.'yyyy-MM-dd" />        <param name="Append" value="true" />        <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="LevelMin" value="ERROR" />         </filter>     </appender>    <!-- 系统开发调试日志 -->    <appender name="runlog" class="org.apache.log4j.ConsoleAppender">        <layout class="org.apache.log4j.PatternLayout">            <param name="ConversionPattern"                value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />        </layout>    </appender>    <root>        <level value="info" />        <appender-ref ref="runlog" />        <appender-ref ref="log_daily" />        <appender-ref ref="log_daily_error" />    </root></log4j:configuration>

即可在项目目录下每天生成一个日志文件

0 0
原创粉丝点击