log4j日志总结
日志及分类
日志(log)
- 主要用来记录系统运行中一些重要操作信息
- 便于监视系统运行情况,帮助用户提前发现喝避开可能出现的问题,或者出现问题后根据日志找到原因
日志分类
- SQL日志、异常日志、业务日期
JDK提供日志记录功能
log4j是一个非常优秀的开源日志记录工具
- 控制日志的输出级别
- 控制日志信息输送的目的地是控制台、文件等
- 控制每一条日志的输出格式
slf4j、logback
自定制日志记录器
使用log4j记录日志步骤
- 在项目中加入log4j的JAR文件
- 创建log4j.properties文件
- 配置日志信息
- 使用log4j记录日志信息
日志管理器配置
###设置Logger输出级别和输出目的地### log4j.rootLogger=debug, stdout, logfile #日志记录器输出级别(生产环境下一般是INFO或者WARN,开发环境下一般DEBUG):DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命) ###把日志信息输出到控制台### #日志信息输出到控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender #信息打印到System.err上 log4j.appender.stdout.Target=System.err #指定日志布局类型 log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout ###把日志信息输送到文件:zr.log### #日志信息写到文件中 log4j.appender.logfile =org.apache.log4j.FileAppender #指定日志输出的文件名 log4j.appender.logfile.file=zr.log #指定转换模式 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout #指定日志布局类型 log4j.appender.logfile.layout.ConversionPattern=%d${yyyy-MM-dd HH:mm:ss} %l %F %p %m%n |
输出格式类型
%p:输出日志信息优先级,即DEBUG, INFO, WARN, ERROR, FATAL %d:输出日志时间点的日期或时间 %r:输出自应用启动到输出该log信息耗费的毫秒数 %l:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类:Testlog4.main(TestLog4.java:10) %F:输出日志信息产生时所在的文件名称 %L:输出代码中的行号 %m:输出代码中指定的消息,产生的日志具体信息 %n:输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行 |
测试
JDK
import java.util.logging.Logger; import org.junit.Test; public class TestJunit1 { //日志记录对象(JDK工具创建日志记录对象) private Logger log = Logger.getLogger("TestJunit1"); @Test public void test() { log.info("方法的开始"); } }
log4j
1.引入jar包
2.log4j.properties配置文件
###设置Logger输出级别和输出目的地### log4j.rootLogger=info, stdout, logfile #日志记录器输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命) ###把日志信息输出到控制台### #日志信息输出到控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender #信息打印到System.err上 log4j.appender.stdout.Target=System.err #指定日志布局类型 log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout ###把日志信息输送到文件:zr.log### #日志信息写到文件中 log4j.appender.logfile =org.apache.log4j.FileAppender #指定日志输出的文件名 log4j.appender.logfile.file=zr.log #指定转换模式 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout #指定日志布局类型 log4j.appender.logfile.layout.ConversionPattern=%d${yyyy-MM-dd HH:mm:ss} %l %F %p %m%n
3.java
import org.apache.log4j.Logger; import org.junit.Test; public class TestJunit2 { //日志记录对象(log4j创建日志记录对象) private Logger log4j = Logger.getLogger(TestJunit2.class); @Test public void test() { log4j.info("方法的开始"); } }
扩展
Log4j官方的appender给出了一下几种实现
- org.apache.log4j.ConsoleAppender(控制台),
- org.apache.log4j.FileAppender(文件),
- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.logfile.MaxFileSize=10000KB(每个生成的日志最大是10000KB)
log4j.appender.logfile.MaxBackupIndex=1000(允许生成的最多文件数量是1000,即是文件数量达到上限1000个以后,则覆盖之前的文件。)