log4j日志使用的一些初级心得

1.这是一个日志使用初级者的心得体验,不纠结于原理,为快速使用提供方便。

2.log4j在使用之前要先加载配置文件。当然,默认情况下使用日志对象之前会自动从classpath 中加载配置文件。

所以如果log4j.properties文件在classpath中,就不用手动加载。如果要手动加载配置文件,则使用Properties类,这样的话可以改变配置文件的路径,

代码:

String path = System.getProperty("user.dir");
Properties props = new Properties();
props.load(new FileInputStream(path+"/config/log4j.properties"));
PropertyConfigurator.configure(props);

3.如果你的配置文件正常配置了,你就可以直接在程序中使用Logger对象了。一般用法就是,定义一个全局的静态变量直接初始化,就可以使用了。

//--获取日志记录器-----
public static Logger logger = Logger.getLogger(LogTest.class);

4.那配置文件怎么配置呢,没有特殊情况配置文件当然叫log4j.properties,并且放在classpath目录中(一般是src目录下就行了)

5.从下面的内容开始借鉴了许多其他大神的经验,并不是做得比别人好,只是对于我自己更容易理解而已,在文章最后会给出出处。

6.日志是通过日志记录器来使用的,我们在程序里通过Loggger获取的是日志对象,但是抽象一点,就是获取了一个日志记录器,

所以配置文件里只有一个内容,就是日志记录器的各项属性。

7.按照顺序,第一部分当然是配置这个日志记录器的名字和级别,这两项配置比较简单并且也是基础。

8.log4j比较贴心,提供了的一个根记录器rootLogger,一般情况下使用这个也就行了。因为获取Logger的方式有多种,比如还可以根据名称获取logger,

但是如果你并没有配置对应名称的记录器,那你默认获取的是根记录器。配置一下根记录器吧。

log4j.rootLogger=DEBUG,A1
#定义日志名称,等级,输出方式
这句配置表示了,根记录器rootLogger的等级是debug级别,它将输出到A1代表的存放器中,存放器的概念下面再说,这里A1只是一个名称,可以随便指定。

9.当然如果你不想用根记录器,还可以自己配置记录器。如下:

log4j.logger.BusinessLog=debug,A1,A2

这句代码表示:配置了一个叫BusinessLog的记录器,级别是debug,输出到A1和A2两个存放器中。那么在程序中怎么获取呢,既然你配置了名称,当然就可以通过名称来获取了,如下:

public static Logger logger =  Logger.getLogger("BusinessLog");
10.第一部分的配置到这里就算一个小结,下面我们来说说上文提到的叫A1,A2的存放器,所谓存放器就是日志输入的地方,一般来说我们开发的时候希望日志输出到控制台,文件中,常用的就是这两个地方,那我就用A1来表示控制台,A2来表示文件中,如果有更多的地方,就在上面的配置后面添加更多的地方就行了,可能叫A3,A4等等。

11.下面的配置就是要配置这些A1,A2了,为什么叫A开头呢,因为规范一点它叫做输出源Appender。按照顺序,当然先配置这个输出源的名称了,但是我们已经用A1来代表它了,就不用配置了,那第二个配置的是什么,级别,输出源没有级别,但是和级别差不多的属性倒是有一个就是它的源,是输出到控制台,还是文件,还是其他地方,第一个先配置源。

log4j.appender.A1 = className
这个className就代表了不同的地方,网上有很多的例子,常用的就4种,这里就不意义表示了,所以正常的下一句配置应该是什么

log4j.appender.A1=org.apache.log4j.ConsoleAppender
这样就把A1这个输出源的源配置成控制台了,如果你使用的日志记录器配置了A1的输出源,你就可以在控制台看见你输出的日志了。

log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
这样就把A1的源配置成文件了,你输出的日志会保存到文件中

12.那么源配置过了,还需要配置什么呢。下面的配置就有所不同了,因为你输出的源不同,有些配置会不一样,比如输出到控制台是不用配置文件路径名称的,但是输出到文件,就要配置文件的路径名称。具体的配置就要根据你具体的输出源而定。具体的可以查看文章结尾的链接。

13.大家都说log4j配置文件有三个部分,那么,最后一个部分是什么呢,我们已经有了记录器,记录器有了级别,有了输出源,还差点什么呢?就是日志输出的格式。

日志以什么格式输出,其实除了我们指定的内容要在日志中输出外,还有其他重要的信息也要输出,比如时间,比如所在的类名,所在的行号,对输出信息的限制等等。那么这些东西怎么定义呢,这就是配置文件的最后一个部分,Layouts(布局),

14.一般来说布局这种东西,不熟练的还是不要自己写,本人就是,从网上搜一个就好。稍作修改就可以用了。自己保持能看懂就行了。那关于布局,又有哪些配置呢

15.log4j是体贴的,它内置的几种布局我们只要像上面选择存放器一样选择就可以了。

log4j.appender.appenderName.layout=className
不同的className就代表了不同的布局,具体的可以查看文章尾部的链接。

log4j.appender.A5.layout=org.apache.log4j.PatternLayout
上面这句就是 可以灵活地指定布局模式,PatternLayout就是可以按照自己的方式布局,也是用的最多的,

16.自己怎么布局呢,log4j也有大量的符号表示不同的意义,比如时间的,比如换行的,比如长度限制的,等等,具体的查看文章结尾的链接,这里给出实例


log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=%d [%-5p] %t %C{1}:%L %x  - %m%n
17.到这里配置算是暂时告一段落,log4j当然还有很多其他的功能,如果你只是想使用日志,基本已经够用。不往下讲是因为下面的我也没研究过。

装载自:blog.sina.com.cn/s/blog_7774a1fe01013msb.htm








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值