日志对任何一个项目都是必不可少的,虽然每个项目都有在使用,但是从来没有具体了解过,反正就知道,想要打印日志就在代码上写:log.info(""),估计不少人和我差不多,说知道也知道,说不知道也可谓一点都不知道,由于最近日志输出上出现了小问题,就学习了下,究竟日志怎么用,如何配置的,在此记录下,以便日后回顾!
日志输入有很多,这里介绍log4j
先附上我项目中使用的log4j的配置内容:
log4j.rootLogger=info, console,logfile log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=target/spring.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
内容很少,很简单,对上面的稍作解释:
log4j.rootLogger 是配置文件的根节点,这个指定了你的日志要以什么级别,输出到哪里去,例子中级别是:info,输出到console,logfile去。需要注意的是日志级别:有Error、warn、info、debug等四个(其他忽略)。你的级别只能从这四个里选一个,想自己随便造一个是不可能的。后面两个参数,console,logfile是输出到哪里,这两个你可以随便写,也可以写多个,如:A,B,C,D,D这样写都可以,但是因为这样没有任何意义,所以一般写不这么写。我这么说明一下,是怕有些童鞋不知道,以为console,logfile是写死的,特别是喜欢钻牛角尖的小伙伴,比如我就是,总是感觉,啊呀,这个是不是要写死,为什么要这样啊,什么的,看过这篇文章的你希望不用再有这个烦恼,输出文件名,随便写,想怎么写怎么写。接下来看后面的内容。
log4j.appender 这个是配置输出日志添加到哪去,这个就需要配合上面的console,logfile这个了;比如:
log4j.appender.console=org.apache.log4j.ConsoleAppender
这个就指定了输出到console日志,是输出到控制台的日志,这个就保证了你在代码中输入的log.info()的内容能在控制台看见了,没有这个,你log.info的内容就不可能出现控制台上
log4j.appender.logfile=org.apache.log4j.FileAppender
这个和上面一样,只是指定的目的地变了,这个表示输出到logfile的日志,是添加到文件中去。这个就是平常我们在日志文件中查看日志,就是因为这个,才能让日志输出到我们指定的文件,
log4j.appender.logfile.File=target/spring.log
这个就指定了日志的目录以及日志文件名
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n
这两个指定了日志格式,具体每个代表什么意思,这个要纠结下去,个人觉得没什么意义了,可以自行百度,这里不做解释