log4j:最传统的log框架,核心概念 Logger appender layout
commons-log:避免库实现者限制使用者的log实现,实现动态log绑定
slf4j:动态绑定有时会失败,或者不可控,slf4j使用静态绑定
logback:增强版的log4j,提供 配置扫描更新、占位符、运行时过滤器、处理IO异常……等功能
目前最佳搭配:slf4j logback
slf4j实现方式:org.slf4j.impl.StaticLoggerBinder由集成方实现
某个配置例子logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="10 seconds">
<property name="APP_NAME" value="weitm-common" />
<property name="LOG_HOME" value="D:/workspace/common/log" />
<!--格式化输出:%d表示日期 {}中的格式满足java.text.SimpleDateFormat ,
%thread表示线程名,%-5level:级别从左显示5个字符宽度 的log等级 %msg:日志消息,%n是换行符
%logger{50} logger的名字,
%caller{3} 调用栈
%method 方法名
%line 行号
%relative 从应用开始到现在的相对时间(毫秒)
%xException 调用栈
property{key}
() 是分组
"%black", "%red", "%green","%yellow","%blue", "%magenta","%cyan", "%white", "%gray", "%boldRed","%boldGreen", "%boldYellow", "%boldBlue", "%boldMagenta""%boldCyan", "%boldWhite" and "%highlight"
-->
<property name="PATTERN" value="%-32(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{50}::%method:%line |%msg%n" />
<property name="DETAIL_PATTERN" value="%-32(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %relative) %-5level %logger{50}::%method:%line %n%caller%msg%n %xException %n" />
<contextName>${APP_NAME}</contextName>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${DETAIL_PATTERN}</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="file"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<append>true</append>
<file>${LOG_HOME}/${APP_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>${PATTERN}</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1024MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder"
level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor"
level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
<!--myibatis log configure -->
<logger name="com.apache.ibatis" level="TRACE" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" />
<root level="DEBUG">
<appender-ref ref="console" />
<appender-ref ref="file" />
<!-- <appender-ref ref="DEBUG"/> -->
</root>
</configuration>
相关推荐
log4j和logback的helloworld以及与spring等的整合使用
Solo 是一个专业、简约、稳定、极速的开源Java博客系统。
《开发者突击:Java Web主流框架整合开发(第2版)(含CD光盘1张)》是畅销书《开发者突击:Java Web主流框架整合开发(J2EE+Struts+ Hibernate+Spring)》的第2版,全面地讲解了Java Web开发中的流行技术和软件架构,...
本套Java视频教程详细讲解了代理设计模式的用法。分别讲述了静态代理、JDK动态代理,及CGLIB动态代理的用法,及应用场景对比。此套Java视频教程适合Java初学者,为以后的学习打下坚实基础。
一个基于Java的Log分析框架,开发者只需要关心针对每一条log的具体业务,不必关心文件指针或者是IO细节
Java开发基于SSM框架开发的客户管理系统源码。基于spring+spring MVC+MyBatis的BOOT客户管理系统,后台使用SSM框架进行编写,前台页面使用Bootstrap和jquery框架完成的页面展示功能 系统主要实现两大功能模块:用户...
Java 常用 web 框架源代码,可以直接link myeclipse ,主要包含struts hibernate_src dom4j spring log4 common-fileupload webwork
Log4j 控制台超链接 java元素追踪 自实现log4j 日志超链接 java控制台实现像log4j一样的输出,类和方法,以及行数的追踪。 控制台个性化输出。log4j日志原理。日志输出的自实现。自己的日志框架,不需要使用任何框架...
Java SSM+Redis+log4j框架整合.zip
《开发者突击:Java Web主流框架整合开发(第2版)(含CD光盘1张)》是畅销书《开发者突击:Java Web主流框架整合开发(J2EE+Struts+ Hibernate+Spring)》的第2版,全面地讲解了Java Web开发中的流行技术和软件架构,...
在《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括《开发者突击:Java Web主流框架整合开发(J2EE+...
日志框架. 实现了动态的切换和log4j类似功能. 采用jdk1.4 log为底层实现. 下载后可以自己定制相关功能. 可以进一步完善.有兴趣可以加QQ:934547801一起讨论
一个简单的日志框架,很早写的,五一闲了两天,修一修注释一下拿出来共享。。。。。。 注意: 该日志框架五脏不全。。。。。 改进意见: 1.可以在配置文件中添加日志输出格式,然后在代码中读取该格式用以控制输出...
该代码采用ssh框架模式开发,页面控制跳转交给struts处理,数据库持久化用hibernate实现,事务和Dao、Service的管理交给spring,日志实现采用log4j,代码还包含了异常处理等。可以在此基础上稍作修改,从而在项目中...
java swing用Logger输出错误日志
Spring MVC集成 Log4j
《开发者突击:Java Web主流框架整合开发(第2版) 全面地讲解了Java Web开发中的流行技术和软件架构,涵盖了目前从JSP、JavaBean、Servlet到Hibernate、Struts、Spring、Struts 2的主流开发框架,同时通过办公自动...
分3篇重点讲解Struts、Hibernate、Spring框架技术及这些技术的整合应用;基于Struts1的SSH整合架构,并开发个人通讯录和一个完整的办公自动化系统,实现的功能包括日程安排、工作日志、短消息管理、公告管理、会议...
《开发者突击:Java Web主流框架整合开发(第2版) ,全面地讲解了Java Web开发中的流行技术和软件架构,涵盖了目前从JSP、JavaBean、Servlet到Hibernate、Struts、Spring、Struts 2的主流开发框架,同时通过办公...