log4j的基本用法

Log4j由三个重要的组件构成:日志信息的优先级、日志信息的输出目的地和日志信息的输出格式。

    日志信息的优先级从高到低有ERROR、WARN、INFO和DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

     配置Log4j

     Log4j可直接在代码中配置,也可以在XML或Properties中进行配置,下面给出一个比较完整的使用properties的配置文件示例。

     log4j.rootLogger=DEBUG,stdout,R

     # log4j常用的优先级FATAL>ERROR>WARN>INFO>DEBUG

      log4j.logger.org=ERROR,A1

      log4j.logger.org.spring.web=DEBUG,A2

      #A1设置输出地A1到文件,文件大小到达指定尺寸的时候产生一个新文件

       log4j.appender.A1=org.apache.log4j.RollingFileAppender
       ###文件位置##

     log4j.appender.A1.File=orglog.log

     ##文件大小

     log4j.appender.A1.MaxFileSize=500 KB

     log4j.appender.A1.MaxBackupIndex=50

     log4j.appender.A1.Append=true

    ###设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##

      log4j.appender.A1.layout=org.apache.log4j.PatternLayout

      log4j.appender.A1.layout.ConversionPattern=%d{ISO8601}-[%p][%C{1}]-%m%n

    #A2设置输出地A2到文件,文件大小到达指定尺寸的时候产生一个新的文件

     log4j.appender.A2=org.apache. log4j.RollingFileAppender

     ###文件位置##

     log4j.appender.A2.File=springlog.log
    ###文件大小

     log4j.appender.A2.MaxFileSize=500KB

      log4j.appender.A2.MaxBackupIndex=50

      log4j.appender.A2.Append=true

    ###设置A2的输出布局格式PatterLayout,(可以灵活地指定布局模式)###

    log4j.appender.A2.layout=org.apache.log4j.PatternLayout
     log4j.appender.A2.layout.ConversionPattern=%d{ISO8601}-[%p][%C{1}]-%m%n

     ##stdout应用于控制台

   log4j.appender.stdout=org.apache.log4j.ConsoleAppender

   ###设置stdout的输出布局格式PatterLayout,(可以灵活地指定布局模式)##

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appedner.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c -%m%n

   #设置输出地R到文件,文件大小到达指定尺寸的时候产生一个新的文件

   # log4j.appender.R=org.apache.log4j.RollingFileAppender

      log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

     log4j.appender.R.File=rootLog.log

      log4j.appender.R.datePattern='.'yyyy-MM-dd

      log4j.appender.R.append=true

#设置R的输出布局格式Patterlayout,可以灵活指定格式

   log4j.appender.R.layout=org.apache.log4j.PatternLayout

    log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c -%m%n

配置根Logger

log4j.rootLogger=[level],appenderName,appenderName.......
level有五个级别:FATAL,ERROR,WARN,INFO,DEBUG,若log4j.rootLogger=WARN,则意味着只有WARN,ERROR,FATAL被输出,DEBUG、INFO将被屏蔽掉

appenderName就是指定日志信息输出到哪个地方,可以同时指定多个输出目的地,如果 log4j.rootLogger=WARN,stdout,R,A1,则意味着有3个日志输出目的地stdout,R,A1,当然也可以指定具体包的日志输出方式,具体如下:
log4j. logger.org.spring.web=DEBUG,A2,就是说包org.spring.web下的日志输出采用的日志级别为DEBUG,输出目的地为A2,而不是和根日志的相同了。

指定日志输出位置

每个Logger都可以指定一个或者多个appenderName,log4j定义了很多输出位置的方式

ConsoleAppender:输出日志到控制台

FileAppender:输出日志到文件

DailyRollingFileAppender:扩展FileAppender,每天产生一个日志文件

RollingFileAppender:扩展FileAppender,备份容量达到一定大小的日志文件

WriterAppender:将日志信息以流格式发送到任意指定的地方

JDBCAppender:输出日志到数据库

SMTPAppender:把日志发送至邮件

下面分别进行举例:

1. ConsoleAppender:输出日志到控制台

log4j.appender.A1=org.apache.log4j.ConsoleAppender(指定输出到控制台)

log4j.appender.A1.Threshold=DEBUG(指定输出类别)

log4j.appender.A1.Target=System.out

log4j.appender.A1.layout=org.apache.log4j.PatternLayout(指定输出布局)

log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n

2.FileAppender:输出日志到文件
log4j.appender.A1=org.apache.log4j.FileAppender(输出日志到文件)

log4j.appender.FILE.File=file.log(指定输出的路径和文件名)

log4j.appender.FILE.Append=false

log4j.appender.A1.layout=org.apache.log4j.PatternLayout(指定输出布局)

log4j.appender.a1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c -%m%n

3.RollingFileAppender:扩展FileAppender,备份容量达到一定大小的日志文件

log4j.appender.A1=org.apache.log4j.RollingFileAppender

##文件位置

log4j.appender.A1.File=orglog.log

##文件大小

log4j.appender.A1.MaxFileSize=500KB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.Append=true

##设置A1的个输出布局格式PatterLayout,可以灵活地指定布局模式

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} -[%p] [%C{1}] -%m%n

4.JDBCAppender:输出日志到数据库

log4j.appender.A1=org.apache.log4j.jdbc.JDBCAppender##指定输出到数据库
log4j.appender.A1.URL=jdbc:mysql://localhost:3306/myApp##指定数据库URL
log4j.appender.A1.driver=com.mysql.jdbc.Driver#指定数据库驱动
log4j.appender.A1.user=root
log4j.appender.A1.password=root
log4j.appender.A1.sql=insert into log4j(message)values('%d({ISO8601}-[%p] [%C{1}]-%m%n')
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} -[%p] [%C{1}]-%m%n

5.SMTPAppender:把日志发送到文件
log4j.appender.A1=org.apache.log4j.net.SMTPAppender
log4j.appender.A1.Threshold=FATAL
log4j.appender.A1.BufferSize=10
log4j.appender.A1.From=wjx_5893@163.com#发件人
log4j.appender.A1.SMTPHost=mail.163.com#smtp服务器
log4j.appender.A1.Subject=Log4J Message
log4j.appender.A1.To=wjxbit@gmail.com#收件人
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.ConversionPattern=%d{ISO8601} -[%p][%C{1}] -%m%n
====================================

log4j.rootLogger=INFO,consoleAppender,errorLog,warnLog

###############################################################################
#每天文件的输出:DailyRollingFileAppender
#log4j.rootLogger = INFO,errorlogfile
log4j.appender.errorlogfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorlogfile.Threshold = ERROR
log4j.appender.errorlogfile.File = /usr/pc_platform/shuzhan_day.log
log4j.appender.errorlogfile.Append = true
#默认为true,添加到末尾,false在每次启动时进行覆盖
log4j.appender.errorlogfile.ImmediateFlush = true  
#直接输出,不进行缓存
# ' . ' yyyy - MM: 每个月更新一个log日志
# ' . ' yyyy - ww: 每个星期更新一个log日志
# ' . ' yyyy - MM - dd: 每天更新一个log日志
# ' . ' yyyy - MM - dd - a: 每天的午夜和正午更新一个log日志
# ' . ' yyyy - MM - dd - HH: 每小时更新一个log日志
# ' . ' yyyy - MM - dd - HH - mm: 每分钟更新一个log日志
log4j.appender.errorlogfile.DatePattern = ' . ' yyyy - MM - dd ' .log '
#文件名称的格式
log4j.appender.errorlogfile.layout = org.apache.log4j.PatternLayout
log4j.appender.errorlogfile.layout.ConversionPattern =%d %p [ %c] -   %m %n %d

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值