日志
日志信息根据用途与记录内容的不同,分为调试日志、运行日志、异常日志等。
Java常用记录日志
logger
log4j
log4j2
logback
其中除了logger使用的概率较小,因此主要介绍后面三个
日志级别
为了方便日志信息的输出显示,对日志内容进行了分级管理。 日志级别由高到低,共分 6 个级别:
fatal(致命的)
error
warn
info
debug
trace(堆栈)
为什么要对日志进行分级呢?
将日志输出到控制台,或者写入到文件中,这些操作都会降低程序的运行效率。但由于开发需要、便于维护等原因,要将必要的日志信息记录,这时就需要在代码中加入记录日志的相关语句。假设在开发调试程序时需要记录日志信息,等到系统上线后这些信息就没必要记录了,此时需要将记录日志信息相关代码全部删除,这个过程费时费力。
将日志信息进行分级管理之后,便可方便的控制信息输出内容及输出位置,哪些信息需要输出,哪些信息不需要输出,只需在一个日志控制文件中稍加修改即可,不用修改代码中的内容。即在开发调试程序时,将日志信息级别设置低一些,这样输出的日志信息会非常多,当系统上线之后,将日志信息级别设置的高一些,此时只有少部分日志信息被记录。
log4j
最终版本是log4j 1.2.17的版本
为了控制日志的输出,在Log4j中提供了日志输出控制文件,该文件主要由三个部分构成:
日志信息的输出位置:控制日志信息将要输出的位置,是控制台还是文件等。
日志信息的输出格式:控制日志信息的显示格式,即以怎样的字符串形式显示。
日志信息的输出级别:控制日志信息的显示内容,即显示哪些级别的日志信息。
有了日志输出控制文件,代码中只要设置好日志信息内容及其级别即可,通过控制文件
便可控制这些日志信息的输出了。
使用log4j记录日志
导入jar包
放入日志输出控制文件
在src目录下创建log4j.properties文件,将下面内容拷贝到文件中保存。
log4j.rootLogger=info,console
#控制台附加器
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern= [%-5p][%d{yyyy-MM-dd HH:mm:ss}]%m%n
#文件附加器
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = f:/monkey1024/monkey.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= [%-5p][%d{yyyy-MM-dd HH:mm:ss}]%m%n
#滚动文件附加器
log4j.appender.rollfile = org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.File = f:/monkey1024/monkey.log
log4j.appender.rollfile.MaxFileSize = 10KB
log4j.appender.rollfile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.ConversionPattern= [%-5p][%d{yyyy-MM-dd HH:mm:ss}]%m%n
3.代码中实现日志记录
//创建记录日志的对象
Logger log = Logger.getLogger(Log4jTest01.class);
//下面语句会根据log4j.properties中的日志级别输出
l