log4j

Log4j有三个主要的组件/对象:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。
每条日志语句都要设置一个等级(DEBUG、INFO、WARN、ERROR和FATAL)。其中DEBUG 对应调试信息 一般信息 警告信息 错误信息 严重错误信息

  Loggers

在设置日志输出位置的时候,会给那个位置设置一个级别,只有大于等于那个级别的日志才会打印输出到指定位置,例如:某个Loggers(日志输出位置的等级记录器)级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出到那个文件,而级别比INFO低的DEBUG则不会输出。

Appenders

禁用和使用日志请求只是Log4i的基本功能,Log4i日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等,
常使用的类如下:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.og4j.RollingFileApender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
基本上可以满足我们的日常需求,当然如果你的需求比较特殊,可以自己实现Appender输出路径。只需要定义一个类,实现Appender接口就可以了。Appender接口中定义了一系列记录日志的方法,按照自己的规则实现这些方法即可

Layouts

用户可以根据自己的喜好格式化自己的日志输出,Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。
常使用的类如下:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

配置日志信息的布局,其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class

log4j.appender.appenderName.layout.optionl =value1
log4j.appender.appenderName.layout.option =valueN

其中,Log4j提供的1ayout有以下几种:
org.apache.1og4j.HTMLLayout(以HTML表格形式布局)

org.apache.1og4j.PatternLayout(可以灵活地指定布局模式),

org.apache.1og4j.simpleLayout(包含日志信息的级别和信息字符串)

org.apache.1og4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4j.properties
log4j.rootLogger=DEBUG, stdout
log4j.logger.com.example=INFO
log4j.logger.com.example.subpackage=DEBUG

###设置在控制台输出###
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.ConversionPattern=%d [%t] %p %c - %m%n


###输出ERROR级别以上的日志到D://logs/myapp.log###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=D://logs/myapp.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=ERROR
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
dependcy
        
            log4j
            log4j
            1.2.17
        

你可能感兴趣的:(log4j)