commons-logging log4j logback 知识点
log4j 2,需要导入2个jar包:
log4j-core-xx.jar
log4j-api-xx.jarlog4j 2 的 properties 配置文件名字为: log4j2.properties
都加了2.static Logger logger = LogManager.getLogger(MyApp.class.getName());
问:为什么同时使用commons-logging和Log4j?为什么不仅使用其中之一?
答:Commons-logging的目的是为“所有的Java日志实现”提供一个统一的接口,使我们的项目不和具体的日志系统绑定的过于紧密,可以随意更改日志系统实现而不用改动项目本身。
使用Commons-logging的另外一个好处是使得项目中其它组件的日志输出都有一致的形式和级别控制等管理。Commons-logging自身的日志功能比较弱(只有一个简单的SimpleLog),所以一般不会单独使用它。
Log4j的功能非常全面强大,是目前的首选。几乎所有的Java开源项目都会用到Log4j,Log4j的项目一般也同时会用到commons-logging。java的日志接口有:
commons-logging
slf4jjava的日志实现有:
log4j
logback
commons-logging log4j logback 知识点的更多相关文章
- org.apache.log4j与org.apache.commons.logging这两个包有什么区别
apache common logging是一种log的框架接口,它本身并不实现log记录的功能,而是在运行时动态查找目前存在的日志库,调用相关的日志函数,从而隐藏具体的日志实现log4j是具体的日志 ...
- log4j+logback+slf4j+commons-logging的关系与调试
背景 由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构 ...
- Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)
Acknowledgments I would like to thank Jacob Kjome for reviewing early drafts of this document. His c ...
- log4j+logback+slf4j+commons-logging的关系与调试(转)
背景 由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构 ...
- Java日志框架(Commons-logging,SLF4j,Log4j,Logback)
简介 在系统开发中,日志是很重要的一个环节,日志写得好对于我们开发调试,线上问题追踪等都有很大的帮助.但记日志并不是简单的输出信息,需要考虑很多问题,比如日志输出的速度,日志输出对于系统内存,CPU的 ...
- Java logger组件:slf4j, jcl, jul, log4j, logback, log4j2
先说结论 建议优先使用logback 或 log4j2.log4j2 不建议和 slf4j 配合使用,因为格式转换会浪费性能. 名词:jcl 和 jul 标题中的 jcl 是 apache Jakar ...
- 拨云见日,彻底弄清楚Java日志框架 log4j, logback, slf4j的区别与联系
log4j 以及 logback, slf4j 官网 日志框架的困惑 作为一个正常的项目,是必须有日志框架的存在的,没有日志,很难追踪一些奇奇怪怪的系统问题. 但是,我们经常在项目的依赖中,见到奇奇怪 ...
- 转:Java logger组件:slf4j, jcl, jul, log4j, logback, log4j2
先说结论 建议优先使用logback 或 log4j2.log4j2 不建议和 slf4j 配合使用,因为格式转换会浪费性能. 名词:jcl 和 jul 标题中的 jcl 是 apache Jakar ...
- Spring 使用 SLF4J代替 Commons Logging 写日志 异常
项目的日志更换成slf4j和logback后,发现项目无法启动.错误提示 Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/ ...
随机推荐
- 关于vue Unexpected identifier 问题
vue对于es6虽然自带babel转换 但是在index.html文件中并不会发生转换 因此在index.html中使用新的语法会导致低版本浏览器不识别代码因此报出Unexpected identif ...
- Leetcode 114
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- dp入门求最大公共子序列
#include "bits/stdc++.h" using namespace std; ],b[]; ][]; int main() { cin >> a > ...
- ps -ef |grep xxx 输出的具体含义
ps:将某个进程显示出来 -A 显示所有程序. -e 此参数的效果和指定"A"参数相同. -f 显示UID,PPIP,C与STIME栏位. grep命令是查找 中间的|是管道命令 ...
- redhat linux 6.2 安装配置GUI
redhat6.2默认不安装GUI,启动时默认进入text模式,下面介绍下安装.配置GUI的步骤: 1.登录root 2.配置及测试yum vi /etc/yum.repos.d/rhel-sou ...
- Rancher 企业级docker管理平台
启动Rancher 加入ca证书: docker run -d --restart=unless-stopped -p 8080:8080 -v /root/cacert.crt:/var/lib/ ...
- javascript里的偏函数——本质函数式编程+闭包,返回函数
最终效果: var greet = function(greeting, name) { return greeting + ' ' + name; }; var sayHelloTo = _.par ...
- Delphi中的文件扩展名
Filename Extensions in Delphi http://delphi.about.com/od/beginners/a/aa032800a.htm Try building a sm ...
- mybatis 传递多个值的解决办法
参考链接:http://www.2cto.com/database/201409/338155.html. 其中三种方案是正确的,有些例子的细节是错的,但是无关紧要
- Python 数值计算库之-[NumPy](五)