最详细的Log4j使用教程
来源:互联网 发布:釉中彩餐具安全吗 知乎 编辑:程序博客网 时间:2024/05/29 07:04
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用、WEB应用以及移动应用。然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug;在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统。本文要来分享一些Java程序员最常用的Java日志框架组件。
Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台、文件、用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程。更值得一提的是,Log4j可以允许你非常便捷地自定义日志格式和日志等级,可以帮助开发人员全方位地掌控日志信息。
1、log4j.properties日志文件
### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的日志到=F://logs/error.log ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File =F://logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 输出ERROR 级别以上的日志到=F://logs/error.log ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =F://logs/error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORlog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
2、在web.xml配置(要有log4j.jar依赖)
<!--log4j日志配置--><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:config/log4j.properties</param-value></context-param><context-param><param-name>log4jLocation</param-name><param-value>6000</param-value></context-param><!-- 定义LOG4J监听器 --><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
我是在spring中使用、下面是我的、日志配置文件一定是在其他配置之前、这是servlet就会先读取日志配置文件
3、log4j日志内容解析
# log4j核心# --------------------------------------------------------------------------------# 1、Logger完成日志信息的处理,可以分成不同的级别记录日志信息,如:debug,info,error# --------------------------------------------------------------------------------# Logger可以定义输出的层次和决定信息是否输出# Logger输出的信息是有优先级别的: ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF------级别由小到大# 常用的有:DEBUG,INFO,WARN,ERROR# --------------------------------------------------------------------------------# 2、Appender设置日志信息的去向 如:一个文件中,*.log,*.htm等。或者说是数据库中# --------------------------------------------------------------------------------# Appender就是设置日志讯息输出到那个地方,可以同时指定多个输出目的地:# log4j.rootLogger=debug,appender1,appender2 # log4j.appender.appender1=org.apache.log4j.ConsoleAppender# log4j.appender.appender2=org.apache.log4j.ConsoleAppender# --------------------------------------------------------------------------------# 3、常用的Appender# --------------------------------------------------------------------------------# org.apache.log4j.ConsoleAppender(控制台)# ogr.apache.log4j.FileAppender(文件)# org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)# org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸的时候产生一个新的文件)# org.apache.log4j.WiterAppender(将日志讯息一串流格式发送到任意指定的地方)# org.apache.log4j.JDBCAppender(将日志讯息保存到数据库中)# org.apache.log4j.SMTPAppender(将日志信息以邮件的方式发送到指定的地方)# --------------------------------------------------------------------------------# 4、Layout设置日志信息的输出样式# --------------------------------------------------------------------------------# Layout提供的layout的方式:# org.apache.log4j.HTMLLayout(一HTML表格形式布局)# org.apache.log4j.SimpleLayout(包含日志讯息的级别和讯息字符串)# org.apache.log4j.TTCCLayout(包含日志产生时间,执行者,类别等讯息)# org.apache.log4j.PatternLayout(可以灵活的指定布局模式)# --------------------------------------------------------------------------------# org.apache.log4j.PatternLayout(可以灵活的指定布局模式)# 定制所输出的日志信息的样式:# %p 输出优先级别:DEBUG,INFO,WARN,ERROR,FATAL# %r 输出字应用启动到输出该日志讯息所耗时秒数# %t 输出产生该日志事件的线程名# %f 输出日志讯息所属的类别的类别名# %c 输出日志讯息所属的类的全名# %d 输出日志时间点的日期或时间# %d {yyyy-MM-dd HH:mm:ss} 指定日期或时间格式# %l 输出日志时间发生的位置,即输出日志讯息的语句处于他所在的类别的第几行# %m 输出代码中指定的讯息# %n 输出一个换行符号# --------------------------------------------------------------------------------
4、Log4jConfigListener源码(要有spring-web的依赖)
class Log4jConfigListener implements ServletContextListener
interface ServletContextListener extends EventListener
interface EventListener
动态的改变记录级别和策略,不需要重启Web应用,如《Effective EnterpriseJava》所说。
Log4jConfirgureListener也就是通过线程的方式扫描log4j.properties,当发现log4j的配置文件发生变化后就作出响应,从而做到了不重启应用修改日志的输出级别。推荐文章(整理):
Apache log4j
log4j详解
Log4j 日志配置示例详解
Java程序员最常用的8个Java日志框架
在java、web应用、spring中使用
Log4jConfigListener动态改变记录级别及实现
0 0
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程(一)
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程(二)
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- 最详细的Log4j使用教程
- verilog练习
- ViewHolder为什么是被设计成static类型的
- noip2016普及组复赛总结
- c语言照样解决脑筋急转弯
- 在图像上画线(给出任意两个点)c代码实现
- 最详细的Log4j使用教程
- ubuntu下有道字典
- Nexus6p优化
- Android之垂直跑马灯
- 《okhttp返回json数据:com.squareup.okhttp.internal.http.RealResponseBody@2b88614》
- 自建网页项目-蚁族财富网-记录15
- 资源汇总
- hdu1331 Function Run Fun(记忆化搜索)
- Java synchronized详解