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

log4j配置每天生成一个日志文件的更多相关文章

  1. logback配置每天生成一个日志文件,保存30天的日志文件

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 文件输出格 ...

  2. Log4j使用笔记:每天生成一个日志文件、按日志大小生成文件

    其中TestLog4j.java如下: package cn.zhoucy.test; import org.apache.log4j.Logger; public class TestLog4j { ...

  3. logback 指定每隔一段时间创建一个日志文件

    我使用的logback版本是1.2.3 目前logback支持根据时间来配置产生日志文件,但是只支持每周,每天,每个小时,每分钟等创建一个文件,配置如下: <appender name=&quo ...

  4. log4j输出多个自定义日志文件,动态配置路径

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

  5. 用php生成一个excel文件(原理)

    1.我们用php来生成一个excel文档来讲述其原理: excel2007里面的文档目录组成部分为: 2.我们使用ZipArchive()方法来生成一个简易的excel文件. 使用方法: 3.代码如下 ...

  6. Bitmap文件格式+生成一个BMP文件

    Bitmap的文件格式: #define UINT16 unsigned short #define DWORD unsigned int #define WORD short #define LON ...

  7. 使用SQL语句创建数据库1——创建一个数据库文件和一个日志文件的数据库

    目的:创建一个数据库文件和一个日志文件的数据库 在matser数据库下新建查询,输入的命令如下: USE master——指向当前使用的数据库.创建数据库实际上是向master数据库中增加一条数据库信 ...

  8. 非正常关闭vi编辑器时会生成一个.swp文件

    非正常关闭vi编辑器时会生成一个.swp文件 关于swp文件 使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件以备 ...

  9. python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色

    练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...

随机推荐

  1. 关于Dev-C++用户所必须知道的知识

    开启这几个警告选项,才能拥有GCC编译器的较为全面的报错和警告 另外,目前Dev-C早已停止更新(停滞在版本号5.1,内置的GCC为4.9版本),且使用其检测数组变量也挺麻烦的,实在不推荐使用.

  2. 你真的了解strtotime('X month')吗

    经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌… 今天是20 ...

  3. IDEA 最新破解方法,2019 版本已支持(持续更新,更新时间2019-05-14)

    一.安装进入官网下载适合自己系统的版本,下载地址:https://www.jetbrains.com/idea/download/#section=windows ​ 2. 安装中选择适合本机的64位 ...

  4. Kafka为什么速度那么快?

    Kafka为什么速度那么快? Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率. 即使是普通的服务器 ...

  5. express常见获取参数的方法

    1.req.query 处理get请求 // GET /search?q=tobi+ferret req.query.q // => "tobi ferret" // GET ...

  6. Larave框架下Contracts契约的解析

    本篇文章给大家带来的内容是关于Larave框架下Contracts契约的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Contracts Laravel 的契约是一组定义框架提 ...

  7. Editor模式下实例化Prefab

    PrefabUtility.InstantiatePrefab//需要关联 GameObject.Instantiate//不需要关联

  8. Task 小记

    1. 注意 Task 执行的顺序. 如下代码: IQueryable<T> querySet; if (preConditionExpression == null) { querySet ...

  9. 关于预装操作系统的ThinkPad的分区建议

    Think的个人电脑产品大部分预装有正版操作系统,当前新产品出厂时默认都是一个大分区“C”和一个恢复分区“Q”,很多用户都会要求客服人员提供分区服务,在这里我简单说一下关于分区的几点注意事项望各位参考 ...

  10. Linux内核调优部分参数说明

    #接收套接字缓冲区大小的默认值(以字节为单位). net.core.rmem_default = 262144 #接收套接字缓冲区大小的最大值(以字节为单位). net.core.rmem_max = ...