log4j在eclipse上使用简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39984761/article/details/80524292

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

那么,我们应该如何配置和使用log4j呢?


<1>首先,我们要配置jar包,通过搜索引擎搜索log4j maven,保存进pom.xml即可
<2>配置文件,通常将log4j.properties放置到src目录下,, log4j.properties代码样式如下:

log4j.rootCategory=DEBUG, file, stdout

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

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=target/test.log
log4j.appender.file.MaxFileSize=5120KB
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

##SPRING改为WARN级别
log4j.logger.org.springframework=DEBUG
log4j.logger.org.mybatis=WARN
log4j.logger.org.apache.velocity=WARN
log4j.logger.org.apache.commons=WARN

##显示SQL语句部分,生产环境请调整为ERROR
log4j.logger.com.mybatis=DEBUG 
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG 
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG 
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG


<3>配置好了log4j,我们接下来分享一下它要如何使用。首先,我们要了解log4j的三大组件:
Logger(日志类别):
Appender(日志输出目的地)
Layout(格式化输出日志信息)
1,对于logger,log4j提供四种级别,从低到高分别是DEBUG、INFO、WARN、ERROR 、FATAL。我们可以通过更改log4j.properties中的属性来对输出级别进行设置

log4j.rootCategory=DEBUG, file, stdout//例如,设置级别为debug


当我们设置好一个级别之后,比该级别低的日志信息将不会再显示,log4j只会显示和设置级别一样或者比日志级别高的信息
2,对于Appender,Appender可以控制日志输出的目的地。

log4j.appender.appenderName = 属性值

属性值可以设置成以下几种,每种都是不同的日志输出方式

org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

如果想具体的设置日志输出属性,比如路径,日志文件的大小…可以通过自定义的appenderName.option来设置

log4j.appender.appenderName.option1 = value

3,Layout(格式化输出日志信息),Layout可以控制输出信息的格式,用法类似于C语言中scanf,prinf的参数

log4j.appender.appenderName.layout = 属性值
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4j.appender.appenderName.layout.option1 = value1
ConversionPattern (举例:%d-[ZZXTIT] %p %t %c - %m%n)


每个字符都有独特的含义,下面是字符含义表

  • %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
    %r: 输出自应用启动到输出该log信息耗费的毫秒数
    %c: 输出日志信息所属的类目,通常就是所在类的全名
    %t: 输出产生该日志事件的线程名
    %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
    %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中
    %%: 输出一个”%”字符
    %F: 输出日志消息产生时所在的文件名称
    %L: 输出代码中的行号
    %m: 输出代码中指定的消息,产生的日志具体信息
    %n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行


现在,我们可以具体的使用log4j了

private final Log log=LogFactory.getLog(LoginFilter.class);


因为我们输出的日志信息不希望被修改,我们可以将其设置为final,在getlog中传入当前类的类名(不错,我在做过滤器…)之后,使用对象名点方法名即可输出日志信息

log.debug("这是一条debug信息");

这样,日志信息就成功输出了

猜你喜欢

转载自blog.csdn.net/qq_39984761/article/details/80524292