- 浏览: 1148721 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- Java Foundation (41)
- AI/机器学习/数据挖掘/模式识别/自然语言处理/信息检索 (2)
- 云计算/NoSQL/数据分析 (11)
- Linux (13)
- Open Source (12)
- J2EE (52)
- Data Structures (4)
- other (10)
- Dev Error (41)
- Ajax/JS/JSP/HTML5 (47)
- Oracle (68)
- FLEX (19)
- Tools (19)
- 设计模式 (4)
- Database (12)
- SQL Server (9)
- 例子程序 (4)
- mysql (2)
- Web Services (4)
- 面试 (8)
- 嵌入式/移动开发 (18)
- 软件工程/UML (15)
- C/C++ (7)
- 架构Architecture/分布式Distributed (1)
最新评论
-
a535114641:
LZ你好, 用了这个方法后子页面里的JS方法就全不能用了呀
页面局部刷新的两种方式:form+iframe 和 ajax -
di1984HIT:
学习了,真不错,做个记号啊
Machine Learning -
赵师傅临死前:
我一台老机器,myeclipse9 + FB3.5 可以正常使 ...
myeclipse 10 安装 flash builder 4.6 -
Wu_Jiang:
触发时间在将来的某个时间 但是第一次触发的时间超出了失效时间, ...
Based on configured schedule, the given trigger will never fire. -
cylove007:
找了好久,顶你
Editable Select 可编辑select
Founder of log4j, SLF4J and logback - Ceki on stackoverflow:
http://stackoverflow.com/users/100970/ceki
Log4j or Logback?
http://stackoverflow.com/questions/4311086/any-reason-for-a-new-project-to-use-log4j-instead-of-logback
引用
log4j isn't under active development anymore, and since logback is being developed ground up by the same author as log4j, Ceki Gülcü, to correct some mistakes made in log4j's development, you can be pretty sure that using logback isn't a bad idea.
http://stackoverflow.com/questions/178215/log4j-vs-logback/925098#925098引用
Ceki said:
Logback natively implements the SLF4J API. This means that if you are using logback, you are actually using the SLF4J API. You could theoretically use the internals of the logback API directly for logging, but that is highly discouraged. All logback documentation and examples on loggers are written in terms of the SLF4J API.
So by using logback, you'd be actually using SLF4J and if for any reason you wanted to switch back to log4j, you could do so within minutes by simply dropping slf4j-log4j12.jar onto your class path.
When migrating from logback to log4j, logback specific parts, specifically those contained in logback.xml configuration file would still need to be migrated to its log4j equivalent, i.e. log4j.properties. When migrating in the other direction, log4j configuration, i.e. log4j.properties, would need to be converted to its logback equivalent. There is an on-line tool for that. The amount of work involved in migrating configuration files is much less than the work required to migrate logger calls disseminated throughout all your software's source code and its dependencies.
Logback natively implements the SLF4J API. This means that if you are using logback, you are actually using the SLF4J API. You could theoretically use the internals of the logback API directly for logging, but that is highly discouraged. All logback documentation and examples on loggers are written in terms of the SLF4J API.
So by using logback, you'd be actually using SLF4J and if for any reason you wanted to switch back to log4j, you could do so within minutes by simply dropping slf4j-log4j12.jar onto your class path.
When migrating from logback to log4j, logback specific parts, specifically those contained in logback.xml configuration file would still need to be migrated to its log4j equivalent, i.e. log4j.properties. When migrating in the other direction, log4j configuration, i.e. log4j.properties, would need to be converted to its logback equivalent. There is an on-line tool for that. The amount of work involved in migrating configuration files is much less than the work required to migrate logger calls disseminated throughout all your software's source code and its dependencies.
Log4j使用总结:
http://kdboy.iteye.com/blog/208851
commons-logging 和 log4j的结合使用:
http://ltc603.iteye.com/blog/151341
关于log4j 的 Level:
log4j日志输出的级别分8种,从最严到最宽,依次为:
OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL
OFF表示 turn off logging,ALL表示 turn on all logging.
程序会打印高于或等于所设置级别的日志,设置的日志级别越高,打印出来的日志就越少。如果设置级别为INFO,则级别高于等于INFO(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。
其中最常见的是ERROR、WARN、INFO、DEBUG四种。
http://stackoverflow.com/questions/7745885/log4j-logging-hierarchy-order
引用
public final static int OFF_INT = Integer.MAX_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT = 30000;
public final static int INFO_INT = 20000;
public final static int DEBUG_INT = 10000;
public static final int TRACE_INT = 5000;
public final static int ALL_INT = Integer.MIN_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT = 30000;
public final static int INFO_INT = 20000;
public final static int DEBUG_INT = 10000;
public static final int TRACE_INT = 5000;
public final static int ALL_INT = Integer.MIN_VALUE;
关于 log4j.additivity:
http://veerasundar.com/blog/2009/08/log4j-tutorial-additivity-what-and-why/
引用
log4j.additivity是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下 子Logger 会继承 父Logger 的appender,也就是说 子Logger 会在 父Logger 的appender里输出。若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。
如:
log4j.rootLogger=INFO, stdout,logfile
log4j.logger.com.ambow=DEBUG, ambowLog
log4j.logger.com.ambow.business=DEBUG, bussinessLog
log4j.logger.com.ambow.upgrade=INFO, dataSyncLog
则com.ambow.upgrade包及其子包下的Logger不光在Appender dataSyncLog里输出,也会在rootLogger的Appender stuout和logfile、com.ambow的Appender ambowLog中输出;
若想让com.ambow.upgrade包及其子包下的Logger只在Appender dataSyncLog中输出,则在log4j.properties中添加下行即可:
log4j.additivity.com.ambow.upgrade=false
如:
log4j.rootLogger=INFO, stdout,logfile
log4j.logger.com.ambow=DEBUG, ambowLog
log4j.logger.com.ambow.business=DEBUG, bussinessLog
log4j.logger.com.ambow.upgrade=INFO, dataSyncLog
则com.ambow.upgrade包及其子包下的Logger不光在Appender dataSyncLog里输出,也会在rootLogger的Appender stuout和logfile、com.ambow的Appender ambowLog中输出;
若想让com.ambow.upgrade包及其子包下的Logger只在Appender dataSyncLog中输出,则在log4j.properties中添加下行即可:
log4j.additivity.com.ambow.upgrade=false
通过设置appender的Threshold,可以实现appender对不同级别log的过滤:
http://logging.apache.org/log4j/1.2/faq.html#a2.9
//com.xxx.email.service.sender包在appender stdout(即rootLogger的appender)中的输出级别为DEBUG,但在appender JDBC中的输出级别为ERROR log4j.rootLogger=INFO, stdout log4j.logger.com.xxx.email.service.sender=DEBUG, JDBC log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender ... log4j.appender.JDBC.Threshold=ERROR
Log4j 之 输出格式 PatternLayout 参考:
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
Log4j使用技巧——让子类使用父类中定义的Logger:
引用
在项目中,有时候会遇到这么一种情况,我们需要记录一些类的使用情况,在类的声明中,我们会如此声明一个logger:
private static final Logger logger=Logger.getLogger(MyClass.class);
然后再用这个logger来打印我们关心的信息。这种方法一直都很不错在我们的类比较少的情况下。不过在类大量增加时,我们发现这种方法并不是一个好的方法,它使我们的工程看上去臃肿不堪,于是,我们必须采用一种简洁的方法来替换它,确保其能够让我们的程序看起来舒服一些...:
http://cuiyingfeng.blog.51cto.com/43841/6625
private static final Logger logger=Logger.getLogger(MyClass.class);
然后再用这个logger来打印我们关心的信息。这种方法一直都很不错在我们的类比较少的情况下。不过在类大量增加时,我们发现这种方法并不是一个好的方法,它使我们的工程看上去臃肿不堪,于是,我们必须采用一种简洁的方法来替换它,确保其能够让我们的程序看起来舒服一些...:
http://cuiyingfeng.blog.51cto.com/43841/6625
发表评论
-
Performance & Load test tool : JMeter
2012-12-18 14:28 1291Official: http://jmeter.apa ... -
myeclipse 10 安装 flash builder 4.6
2011-12-11 12:47 15454从Flash Builder 4 之后,ado ... -
MyEclipse乱码问题解决方法概括
2011-06-28 13:51 1563http://lmanman123.blog.163.com/ ... -
Powerdesigner
2011-01-27 11:12 1212CDM 概念数据模型 PDM 物理数据模型 OOM 面向对象模 ... -
ERwin
2010-12-29 22:10 2286ERwin Data Modeler 建模实践: http:/ ... -
JS工具 - Calendar
2010-12-09 09:37 1068DHTML Calendar: http://www.dyna ... -
TOAD使用笔记
2010-09-14 10:27 3593toad执行一个查询,弹出的模态查询对话框会使什么都干不了了; ... -
Converting a Java project to a Dynamic Web project in Eclipse (通过Project Facets)
2010-07-08 12:43 3823Converting a Java project to a ... -
Eclipse Attach Source不起作用的问题
2010-04-14 17:01 8197在eclipse中点F3 来attach Spring的源代码 ... -
工具及软件
2009-11-23 00:46 1082C软件: http://just-study.blogbus. ... -
Vim & Emacs
2009-11-23 00:30 1745精读: Learn Vim Progressively ... -
Pinyin4j
2009-10-10 16:50 1541http://wister.iteye.com/blog/33 ... -
关于SAX,DOM,JAXP,JDOM,DOM4J
2009-09-02 13:57 1100关于SAX,DOM,JAXP,JDOM,DOM4J http: ... -
未完 Guava
2009-08-25 23:17 1272集合工具:引用 List&l ... -
DWR异常处理
2009-08-13 12:54 1025关于DWR异常处理小结 http://blog.csdn.ne ... -
eclipse:初装设置+使用技巧(快捷键等)+常用插件
2009-08-11 10:27 5441setting of eclipse My 初装设置: 1 ... -
Maven
2009-06-26 13:58 8281Maven: The Complete Reference: ... -
Ant
2009-06-23 10:55 2024Ant基本使用指南: http://www.iteye.com ... -
svn
2009-03-18 11:41 2587eclipse 中svn图标说明 灰色向右箭头:本地修改 ...
相关推荐
在Java世界里,我们常常会遇到多种日志框架并存的情况,比如Jakarta Commons Logging(JCL)和Log4j。本文将详细介绍如何使用`jcl-over-slf4j-1.6.0.jar`这个桥接包,实现从JCL到SLF4J的日志系统转换,并探讨其实际...
压缩包中的`jcl-over-slf4j-1.5.10-sources.jar`是一个桥接器,它的作用是将使用Jakarta Commons Logging(JCL)的日志调用重定向到SLF4J。这是因为一些老的库可能使用了JCL,但SLF4J并不直接支持它,所以引入这个桥...
SLF4J-JCL(Jakarta Commons Logging)桥接器是SLF4J的一个组件,它使得那些依赖于Jakarta Commons Logging(JCL)的库能够透明地使用SLF4J。JCL是一个早期的日志接口,许多流行的开源库如Hibernate、Struts等都曾...
2. **添加桥接器**:引入`slf4j-jcl`(Jakarta Commons Logging桥接器)的jar文件,这会让commons-logging的调用转到SLF4J。 3. **配置SLF4J**:在项目中添加Logback的配置文件(例如`logback.xml`),以控制日志的...
8. **jcl-over-slf4j.jar**:这是一个兼容接口,用于桥接Jakarta Commons Logging (JCL) 到SLF4J。如果项目中存在对JCL的依赖,可以使用此jar文件来避免直接依赖JCL。 9. **docs** 文件夹:可能包含SLF4J的API文档...
SLF4J(Simple Logging Facade for Java)是Java中一个简单日志 facade,它为各种日志框架提供了一个统一的接口,如Log4j、java.util.logging、Logback等。这个接口允许开发者在部署时选择合适的日志实现,而无需...
- **其他绑定**:SLF4J还支持其他日志系统,如log4j-over-slf4j.jar(Log4j到SLF4J的桥接)、jcl-over-slf4j.jar(Jakarta Commons Logging到SLF4J的桥接)等。 3. **SLF4J的优势** - **灵活性**:SLF4J允许在不...
### 日志框架总结:JUL、Log4j、Log4j2、Logback及门面技术 #### 日志框架与日志门面的区别 在软件开发过程中,日志记录是必不可少的一部分,它可以帮助开发者追踪应用运行的状态,及时发现并解决出现的问题。日志...
它提供了一种统一的方式来管理和记录应用程序的日志信息,允许开发者选择自己喜欢的日志实现,如Log4j、Java Util Logging (JUL) 或者 Logback等,而无需修改代码。JCL通过API抽象了各种日志框架,使得应用可以在...
7. **jcl-over-slf4j.jar** (可选): Jakarta Commons Logging (JCL) 的桥接器,使得使用JCL的日志调用可以通过SLF4J来路由到Log4j。 8. **logback-classic.jar**: 如果使用了SLF4J,而日志实现选择的是Logback,...
4. **SLF4J 桥接器**:SLF4J 提供桥接器,可以拦截并重定向到 log4j、java.util.logging(JUL)或 Jakarta Commons Logging(JCL)。这使得从其他日志框架迁移变得简单,无需修改代码。 5. **访问日志**:LogBack-...
Apache Jakarta Commons Logging,简称为JCL,是Apache软件基金会开发的一个开源项目,旨在为Java应用程序提供一个统一的日志记录接口。这个接口允许开发者选择在运行时插入任何支持的底层日志框架,如Log4j、java....
- 其他可能需要的依赖,例如 JCL-over-SLF4J(Jakarta Commons Logging)的桥接器,以便将使用 JCL 的库的日志输出重定向到 SLF4J。 **4. 配置与使用** 在使用 Logback 时,你需要创建一个 `logback.xml` 或 `...
Jakarta Commons Logging 提供了一个抽象层,使得应用程序可以通过统一的接口使用不同的日志系统,如Log4j、java.util.logging或SLF4J等。然而,当一个项目中存在多个日志框架时,可能会导致冲突。为了解决这个问题...
在Java世界里,有多种流行的日志框架,包括JUL (java.util.logging),JCL (Jakarta Commons-Logging),JBoss-logging,logback,log4j,log4j2以及SLF4J (Simple Logging Facade for Java)。Spring框架底层使用的是...
SLF4J API 是一个用于各种日志框架的简单抽象,包括Jakarta Commons Logging (JCL)、Logback 和 Log4j。它的设计目标是为不同日志实现提供一个统一的编程接口,使得开发者可以在不修改代码的情况下切换日志框架。...
Logback是一个直接的日志实现,而Simple Logging Facade for Java (SLF4J)是一个日志抽象层,类似于Commons-Logging,但设计得更简单、更强大。使用Logback和SLF4J,需要引入对应的依赖,如`logback-classic`,并...
4. **兼容性与迁移**:SLF4J 可以桥接 log4j、java.util.logging(JUL)以及 Jakarta Commons Logging(JCL)。通过使用适当的桥接库,如 jcl104-over-slf4j.jar,可以轻松地将现有的JCL或log4j日志调用转换为SLF4J...
Spring框架的日志支持同样灵活,它支持多种日志实现,包括Log4j、Logback和JCL(Jakarta Commons Logging)。Spring的核心模块中包含`spring-core`,它提供了`org.springframework.core.log.Log`接口,这个接口可以...