log4j.properties配置

  作为一个新手,正在看代码,对于深入的东西并没有了解。log4j的配置还在学习中,有不对的地方谢谢指出。

一、Log4j简介

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

  我们也可以控制每一条日志的输出格式;

  通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

  最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

  此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。

  log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。可简单理解为日志类别(Loggers),日志要输出的地方(Appenders)和日志以何种形式输出(Layouts)。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。

    1.Loggers组件(输出级别种类)在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

1 log4j.rootLogger= [ level ] , appenderName1, appenderName2, …
#level :设定日志记录的最低级别,可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,Log4j建议只使用中间四个级别。
#通过在这里设定级别,您可以控制应用程序中相应级别的日志信息的开关,
#比如在这里设定了INFO级别,则应用程序中所有DEBUG级别的日志信息将不会被打印出来。
#appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。

    2.Appenders(配置日志信息输出目的地)禁用和使用日志请求只是Log4j的基本功能,Log4j日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。

 1 常使用的类如下:
 2 org.apache.log4j.ConsoleAppender(控制台)
 3 org.apache.log4j.FileAppender(文件)
 4 org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
 5 org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
 6 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
 7 
 8 配置模式:
 9 log4j.appender.appenderName = className
10 log4j.appender.appenderName.Option1 = value1
11 12 log4j.appender.appenderName.OptionN = valueN

    3.Layouts有时用户希望根据自己的喜好格式化自己的日志输出,Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。

 1 常使用的类如下:
 2 org.apache.log4j.HTMLLayout(以HTML表格形式布局)
 3 org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
 4 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
 5 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
 6 
 7 配置模式:
 8 log4j.appender.appenderName.layout =className
 9 log4j.appender.appenderName.layout.Option1 = value1
10 11 log4j.appender.appenderName.layout.OptionN = valueN

二、配置详解

  1.配置根Logger:

示例:【参照一.1】
1
log4j.rootLogger=INFO,A1,B2,C3

  2.配置日志信息输出目的地(appender):

    (1)ConsoleAppender选项:

      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。    
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Target=System.err:默认值是System.out。
    (2)FileAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
      File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。
    (3)DailyRollingFileAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true

      File=D:/logs/logging.log4j:指定当前消息输出到logging.log4j文件中。
      DatePattern='.'yyyy-MM:每月滚动一次日志文件,即每月产生一个新的日志文件。当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。

    (4)RollingFileAppender选项:
      Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。
      ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
      Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
      File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。
      MaxFileSize=100KB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logging.log4j.1文件中。
      MaxBackupIndex=2:指定可以产生的滚动文件的最大数,例如,设为2则可以产生logging.log4j.1,logging.log4j.2两个滚动文件和一个logging.log4j文件。

  3.配置日志信息的输出格式(Layout)

    (1)HTMLLayout选项:
      LocationInfo=true:输出java文件名称和行号,默认值是false。
      Title=My Logging: 默认值是Log4J Log Messages。

    (2)PatternLayout选项:
      ConversionPattern=%m%n:设定以怎样的格式显示消息。

#示例有ConsoleAppender和DailyRollingFileAppender 
1
log4j.appender.console= org.apache.log4j.ConsoleAppender 2 log4j.appender.console.Target= System.out 3 log4j.appender.console.Threshold= DEBUG 4 log4j.appender.console.layout= org.apache.log4j.PatternLayout 5 log4j.appender.console.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss}|%5p|%c{1}|%C|%M: %L - %m%n 6 %d:输出日志时间点的日期或时间
7 8 log4j.appender.LogFile= org.apache.log4j.DailyRollingFileAppender 9 log4j.appender.LogFile.File= log/app.log 10 log4j.appender.LogFile.Append= true 11 log4j.appender.LogFile.Threshold= DEBUG 12 log4j.appender.LogFile.layout= org.apache.log4j.PatternLayout 13 log4j.appender.LogFile.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss}|%5p|%c{1}|%C|%M: %L - %m%n

内容大都来源于:http://it.oyksoft.com/log4j/ (感谢)

Spring中配置log4j:http://blog.csdn.net/tiger119/article/details/7432364 (感谢)

  

转载于:https://www.cnblogs.com/yinqx/p/6275367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值