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>

原文地址:https://www.cnblogs.com/diandianquanquan/p/11496480.html

时间: 2024-10-06 00:30:53

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

log4 配置日期为滚动类型(每天产生一个日志文件)

控制台: App.config,log4的配置,同时要在E:\MyWork\log4日志测试\   建立对应文文件夹存放log文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigur

log4j实现每个线程保存一个日志文件

log4j.properties: ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.Conversion

如何设置WebLogic生成的日志文件的权限?

在运维的过程中,有时我们需要以有别于启动WebLogic的用户去访问或收集日志等信息,以及时了解系统运行情况,这就要求日志文件的访问权限是允许其他用户访问的.一般情况下,新生成的文件默认权限是根据操作系统的umask的设置决定的.那如何改变WebLogic运行时产生的日志文件的访问权限呢? 如果通过操作系统的umask命令修改是不会生效的,因为在WebLgoic的启动脚本startWebLogic.sh中有类似这么一条命令"umask 022",其覆盖了操作系统的设置. 比如start

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

Bitmap的文件格式: 1 #define UINT16 unsigned short 2 #define DWORD unsigned int 3 #define WORD short 4 #define LONG int 5 6 // Bitmap File Header ( 14 Bytes ) 7 typedef struct tagBITMAPFILEHEADER 8 { 9 UINT16 bfType; // same as BM in ASCII. 10 DWORD bfSize

Golang把所有包括底层类库,输出到stderr的内容, 重新定向到一个日志文件里面?

不论应用是如何部署的,我们都期望能扑捉到应用的错误日志, 解决思路: 自己写代码处理异常拦截,甚至直接在main函数中写异常拦截. stderr重定向到某个文件里 使用 syscall.Dup2 第一种方法比较简单, 我们这里主要看后两种: 使用 stderr替换的代码: package main import (     "fmt"     "os" ) func main() {     f, _ := os.OpenFile("C:\\tmp\\11

linux 编译时多个源文件生成一个目标文件

obj-m := target.o target-objs :=  src1.o src2.o src3.o linux 编译时多个源文件生成一个目标文件

20190829王老师发的面试题1、有一个日志文件access.log,内容如下

1.有一个日志文件access.log,内容如下 09:28:59 404 2003356554 09:29:00 200 2003232321 09:30:00 300 2003232321 09:36:00 500 2003232321 09:39:00 200 2003232321 09:40:00 400 2003232321 09:47:00 200 2003232321 ... 现在需要统计第二列包含200这个字符的总行数,请写出命令?(只用awk能不能搞定) 最优答案: [[ema

log4j配置相对路径实现日志记录

从网上简单搜索了一下,发现有三种介绍的方法.总结在这里1. 解决的办法自然是想办法用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如: log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替.这样,我们就可以在log4j加载配置文件之前,先用System.setProperty设置好根路径. 在 没有发现这个

【转】 log4j输出多个自定义日志文件

原文链接 http://blog.csdn.net/janestone/article/details/1862678 log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况, 怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在 现有的log4j基础上稍加配置即可轻松实现这一功能. 先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志: log4j.rootLogger=DEBUG, stdout