关闭

初识Log4j

标签: log4j
73人阅读 评论(0) 收藏 举报
分类:

Log4j简介

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

使用场景

方法入口、方法出口、异常处、需要跟踪的信息处

三大组件介绍

1.Logger
日志级别:
(从左向右级别逐渐升高)
TRACE->DEBUG->INFO->WARN->ERROR->FATA
2.Appenders
日志的输出目的地
3.Layouts
日志的输出格式

Logger

这里写图片描述
表示只会输出级别高于DEBUG的日志(即是全部日志,多用于测试)

Layouts

输出格式eg:
log4j.appender.stdout.layout.ConversionPattern=[%d] %r [%t] %-5p %c:%L - %m%n
则会以下面形式输出:
[2017-10-06 14:53:57,668] 4 [main] INFO zjj.log.LogTest:13 - end
%r:从程序开始运行到输出此日志所用毫秒数
%t:程序所属线程
%-5p:日志的级别
%c:日志所属的类名(简单类名)
%C{1}日志所属的类名(全类名)
%m:日志的消息内容
%n:换行
%L:日志所在程序的行标
%d:输出日志的时间

Appenders

输出的类型包含以下几种
1.ConsoleAppender 控制台
2.FileAppender 文件
3.DailyRollingFileAppender 文件(按天滚动,每天新增一个文件)
4.RollingFileAppender(按量滚动,达到定量后,新增文件)
5.WriterAppender(将日志信息以流格式发送到任意指定的地方)
日志数据量小:使用DailyRollingFileAppender 便于分类查看日志
日志数据量大:使用RollingFileAppender

log4j.properties文件配置模板

log4j.rootLogger=DEBUG, Console ,File ,DailyRollingFile ,RollingFile

#Console  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = F://EclipseWeb//mylogs//log3.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = F://EclipseWeb//mylogs//log3.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = F://EclipseWeb//mylogs//log3.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

rootLogger
1.指定日志输出级别为DEBUG
2.后面指定了4中输出对象(名称自定义)

Console (控制台)
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
这两行代码是固定不变的不需要我们编写(其它输出方式同理)
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
这行代码指定了输出格式:当前时间 [所属线程] 日志级别 [所属类] -内容并换行

File
log4j.appender.File.File = F://EclipseWeb//mylogs//log3.log
将日志log3.log输出到:F:\EclipseWeb\mylogs 下

RollingFile
1.MaxFileSize :
是日志文件的最大尺寸,根据实际需求来定 。
2.MaxBackupIndex:
是日志文件的个数,超过此个数,则覆盖。

案例

1.导入jar包
这里写图片描述
2.建立测试类

public class LogTest {

    //注意导入的包:org.apache.log4j.Logger
    private static final Logger logger = Logger.getLogger(LogTest.class);

    public static void main(String[] args) {
        logger.info("begin");
        System.out.println("模拟程序运行");
        logger.info("end");
    }
}

3.log4j.properties
使用Console和DailyRollingFile输出。
4.控制台运行结果
这里写图片描述
5.磁盘路径输出结果
这里写图片描述
注:新的一天会有新的文件产生。

总结

由于本人水平有限所以就只能理解到这个高度,如果哪处有不对的地方,多谢指点出来,谢谢!

参考

log4j.properties的代码是参考下面这位朋友的,感谢这位朋友。
链接:http://www.cnblogs.com/wqsbk/p/6817886.html

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:311次
    • 积分:56
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档