參考资料:http://logging.apache.org/log4j/1.2/manual.html

通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中。那么我们log4j为我们提供了这种功能,以下我们来一步一步看是怎么做的。这里以property的配置方式写。xml方式类似,想了解的,能够看官方文档。

这里測试的项目包结构例如以下:

log4j 主要由三部分组成:Loggers, Appenders 和Layouts,(appender 能够理解为输出的目的地)

咱们的log4j.properties或log4j.xml 里能够配置多个logger,

每一个logger 能够相应多个Appender,而appender和layout是一一相应的。

以下看最简单的配置,我们配置系统rootLogger,例如以下:

 
当中:
1、log4j.rootLogger 这个的配置三模式为:log4j.rootLogger=level,appender1,appender2,...
level为日志等级。关系如:DEBUG < INFO < WARN < ERROR < FATAL,等级越小能够输出比自己大的日志,如设置为debug,能够输出warn,error,等的日志。
而紧跟在后面的是appender列表:appender1,appender2,...
2、log4j.appender.A_console=org.apache.log4j.ConsoleAppender 指定相应的appender类,这是输出到控制台。
3、log4j.appender.A_console.layout=org.apache.log4j.PatternLayout 。指定layout类,
4、log4j.appender.A_console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 输出格式化。详细怎么使用能够查询PatternLayout 这个api。
我们用一个main方法输出来看看日志打印效果
 
 
 
配置多个appener的情况
  每一个logger能够相应多个appender,例如以下配置:
 
这样。当我们远行App时,日志会办出到控制台和mylog.log日志文件,这是就不再贴出来了。
配置多个logger 情况
  当我们须要对一些重要的日志进行抽取时,或系统中比較独立的模块,如专门与外部系统对接的接口。这时我们就能够配置多个logger,而实现日志分柝。便于我们的日常维护工作。

我们以下在原来的基础上再添加两个logger ,分别为:“com.pt.test” 和“com.pt.test.intf”,命名都是用包名来定义的,看看具体的配置吧:

 
我们注意到:新添加的两个logger 配置为:
log4j.logger.com.pt.test=debug,A_file2   
日志输出到:D:/test/logfile2.log
log4j.logger.com.pt.test.intf=debug,A_file3
日志输出到:D:/test/logfile3.log
我们看看三个文件的日志输出内容:
logfile1.log
 
logfile2.log
 
logfile3.log
 
这时我们会发现,filelog1,filelog2,filelog3都有打印了日志内容,细心的朋友应该会发现,filelog1里包括了filelog2里的全部内容,默认情况下,子Logger会的日志会向全部父级的appender输出,假设我们不想要这种输出那么我们能够把相应的Looger的additivity属性设置为false就能够了,如:把第17行凝视打开log4j.additivity.com.pt.test=false
这样,rootLogger就不会再有Logger "com.pt.test" 及其子包里的日志了。
 滚动生成日志文件的两种模式:
 1、使用 RollingFileAppender 。这样的模式为以大小为基准生成日志文件,配置maxFileSize来限定每一个文件大小,当超出指定大小,系统会自己主动生成下一个文件,
如以下面所看到的的appender:
 
2、使用DailyRollingFileAppender ,这样的模式是按时间来分割文件。能够细每种生成一个文件如:
 
log4j.appender.A_r_date.datePattern='.'yyyy-MM-dd-HH-mm'.log' 表示每分钟就会生成一个日志文件如:
rollFiledate.log.2014-07-12-14-09.log  rollFiledate.log.2014-07-12-14-10.log
假设想配置每天一个日志文件则能够:log4j.appender.A_r_date.datePattern='.'yyyy-MM-dd'.log'
web 项目中使用log4j
我把仅仅要把写好的log4j.properties 放到src文件夹下就能够了。
 

log4j配置输出到多个日志文件(转)的更多相关文章

  1. log4j配置输出到多个日志文件

    通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件中.那么我们log4j为我们提供了这种功能,以下我们来一步一步看是怎么做的.这里以property的配置方式写. ...

  2. Log4j配置的经典总结,打印日志文件,日志存库

        一.介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制 日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Sy ...

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

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

  4. log4j每天,每小时产生一日志文件

    log4j每天,每小时产生一日志文件 2016年08月05日 14:14:33 阅读数:6254 一.之前的文章中有log4j的相关配置以及属性的介绍,下面我们先把配置列出来:   log4j.roo ...

  5. log4j配置输出日志文件

    在测试程序时,有时候运行一次可能需要很久,把日志文件保存下来是很有必要的,本文给出了scala程序输出日志文件的方式,同时使用本人的另一篇博客中介绍的将log4j.properties放到程序jar包 ...

  6. log4j分离日志输出 自定义过滤 自定义日志文件

    普通的log4j.properties 定义: ### set log levels ### log4j.rootLogger = debug,D,E ## Disable other log log ...

  7. log4j 输出原始数据到指定日志文件

    项目中需要将上传的数据输出到指定的log文件,之前对log4j缺少深入认识,普遍将整个应用的日志到输出到一个文件. 在经理的帮助下,业务数据可以直接输出到指定的log文件,现将配置及使用流程整理一下. ...

  8. log4j输出多个自定义日志文件(转)

    如果在实际应用中需要输出独立的日志文件,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢? 先看一个常见的log4j.properties文件,它是在控制台和test.log文件中记录日志: ...

  9. log4j配置参数详解——按日志文件大小、日期切分日志文件

    项目中尽管对log4j有基本的配置,例如按天生成日志文件以作区分,但如果系统日志文件过大,则就需要考虑以更小的单位切分或者其他切分方式.下面就总结一下log4j常用的配置参数以及切分日志的不同方式. ...

随机推荐

  1. 解决App can’t be opened because it is from an unidentified developer

    关闭设置 打开终端 输入sudo spctl --master-disable

  2. 【转】【Asp.Net】ASP.Net Response.ContentType 详细列表

    不同的ContentType 会影响客户端所看到的效果.默认的ContentType为 text/html 也就是网页格式. 代码如: <% response.ContentType =&quo ...

  3. C# 将RichTextBox中内容的文档以二进制形式存

    private void button1_Click(object sender, EventArgs e)        { System.IO.MemoryStream mstream = new ...

  4. 详解ASP.NET Core Docker部署

    前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序. ...

  5. mysql命令收集

    1.显示当前用户的权限

  6. openal 基础知识3

    四创新科技extension (Creative Labs'Extensions) 创新科技为OpenAL添加了多个extensions,许多都利用了他们声卡的特性. “Enumerate All”e ...

  7. mysql 5.7 详细图文安装教程

    官网下载太慢,可以上下载频道下载(mysql-installer-community-5.7.13.0.msi): http://download.csdn.net/download/tan3739/ ...

  8. struts2 + spring3 + mybatis3 环境搭建

    struts2 + spring3 + mybatis3 1. 框架下载 struts2: http://struts.apache.org/ 下载 struts-2.3.14-all.zip spr ...

  9. wamp下修改mysql root用户的登录密码方法

    wamp环境安装之后mysql的root密码为空的,我们希望给它设置一个密码; 1.安装好wamp后,运行WampServer程序,进入MYSQL控制台: 2.进入控制台后,提示输入密码(不用输入任何 ...

  10. java图形化Swing教程(一)

    与多线程.泛型等不同,Swing主要在于使用. 以下主要放代码和凝视.少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing ...