背景:
一直以来,项目都是使用log4j+slf4j的方案来做日志, 最近看到 logback的文章,优点多多,手痒不已
注:阅读此文,需要有一定的log 日志基础
logback介绍:
首先logback,log4j,slf4j的作者是同一个人 ,java界鼎鼎大名的 Ceki Gülcü,logback为取代log4j而生,而log4j基本停止维护
logback优点:
- 1. 更快
- 2. 提供独特而实用特性
-
3. 其他
参考:http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j
logback缺点:
-
1. 编写logback.xml 没有提示
由于logback的灵活性,没有tld/schema规范文件,导致编写没有提示,增
配置方法:
1. logback+slf4j 项目中 java类里面的代码的写法和 log4j+slf4j的 代码写法完全一模一样的
import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** *这个类提供了一些根据类的class文件位置来定位的方法。 * * @version 1.0 2011-4-27 上午12:40:08 * @since 1.0 */ public class ClassLoaderUtil{ private final static Logger log = LoggerFactory.getLogger(ClassLoaderUtil.class);
slf4j的切面日志功能功不可没,代码中可以忽略logback或者 log4j 的存在
2. 去掉 maven pom.xml 所有直接/间接的 log4j 依赖
比如
<dependency> <groupId>loxia2</groupId> <artifactId>loxia2-support</artifactId> <version>${version.loxia}</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency>
3. 去掉 maven pom.xml 所有直接/间接的 slf4j-log4j12 依赖
如上面的 exclusion
4. 增加 logback 依赖
<!--******** logback and slf4j ******** --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${version.logback}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${version.logback}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> <version>${version.logback}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${version.slf4j}</version> </dependency> <!--jul桥接 用来输出 Java Logging Framework (JUL) --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${version.slf4j}</version> </dependency> <!-- jcl桥接,用来输出 第三方Jakarta Commons Logging (JCL) --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${version.slf4j}</version> </dependency>
5. 增加 logback.xml到 classpath下
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <!-- 注意 logback 的括号需要转义 --> <encoder charset="UTF-8" class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{MMdd HH:mm:ss} %-5level \(%F:%L\) %method\(\) - %m%n </pattern> </encoder> </appender> <root> <appender-ref ref="CONSOLE" /> <level value="DEBUG" /> </root> </configuration>
配置完,启动程序,可以看到 日志输出和原先 log4j 基本上一样
参考文章:
1. 从Log4j迁移到LogBack的理由
http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j
2. 日志组件logback的介绍及配置使用方法
http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html
相关推荐
slf4j-api-1.6.4-javadoc 我制作成 chm 格式文件 方便查找
标题中的“【飞天奔月出品】windows版nginx 快速操控神器(启动start,关闭stop,重启restart) 批处理”指的是一个专为Windows操作系统设计的Nginx管理工具,它通过批处理脚本实现了Nginx服务的便捷启动、停止和重启...
奔月生物:2021年半年度报告.PDF
4. **Web Workers**:为了提升游戏性能,开发者可能会使用Web Workers创建后台线程,处理计算密集型任务,如游戏逻辑计算,从而避免阻塞主线程,保证游戏流畅运行。 5. **离线缓存**:HTML5的离线存储功能允许游戏...
这篇文档介绍了如何使用Adobe Photoshop软件创作一张奔月女孩的梦幻艺术照片效果。以下是详细步骤: 1. **新建文件与导入素材**: - 首先创建一个新文件,大小与素材1相同,命名为"奔月女孩"。 - 然后打开素材1,...
【标题】:“奔月生物:2021年半年度报告.rar”是一个压缩文件,其中包含了一份关于奔月生物科技公司在2021年上半年业务运营、财务状况和业绩表现的详细报告。这类报告通常由上市公司发布,以供投资者、分析师和其他...
4. **物理引擎**:为了模拟火箭兔的跳跃、飞行等动作,游戏可能内置了一个简单的物理引擎,处理碰撞检测、重力、速度等物理属性。 5. **音频控制**:游戏中的音效播放可能使用`Audio`对象,通过控制播放、暂停、...
【山东奔月生物科技股份有限公司2019年半年度报告】是该公司在当年的一个重要财务信息披露文件,旨在向公众和投资者展示公司在前六个月的经营状况、财务数据和重大事件。以下是对报告中关键知识点的详细解析: 1. *...
《奔月》是鲁迅先生的一篇短篇小说,收录于其《故事新编》之中,通过对传统神话的再创作,鲁迅以戏拟的手法揭示了深刻的社会与人性问题。这篇作品通过对后羿这一昔日英雄形象的塑造,反映出鲁迅对时代变迁下英雄命运...
《H5游戏源码解析:奔月游戏》 在当今数字化时代,HTML5(简称H5)技术以其跨平台、轻量级、易部署的特点,成为制作网页游戏的热门选择。"奔月游戏"作为一款H5游戏,其源码为我们提供了一窥H5游戏开发的窗口。本文...
【长娥奔月模板下载TIF】是一个与网页设计相关的资源,主要提供了一种以"长娥奔月"为主题的网页模版。这个模版可能是为了庆祝中国传统节日,如中秋节,或者用于讲述中国古老的神话故事。"长娥奔月"是中国文化中的...
HTML5是一种先进的网页标记语言,它是HTML4的升级版,为网页开发带来了许多新的特性和功能,极大地丰富了用户体验和互动性。在这个“HTML5奔月游戏”源码中,我们可以深入探究HTML5在游戏开发中的应用。 1. **...
4. 图片和音频资源:游戏中的图像素材(如角色、背景、图标)和音效文件,通常为PNG或SVG格式的图片,以及MP3或WAV格式的音频。 5. JSON或其他配置文件:可能包含游戏设置、关卡信息、道具数据等,方便调整和扩展...
【标题】"小游戏源码-火贱兔奔月.rar" 提供的是一个小型游戏的源代码,名为"火贱兔奔月"。这类源码通常用于教学、学习或游戏开发者的参考,帮助开发者理解游戏的基本架构和编程逻辑。 【描述】"小游戏源码-火贱兔...
手绘实例:奔月 Photoshop3 图片处理 高级手绘技术技巧
4. **CSS3**: 虽然主要的视觉效果可能在Canvas上完成,但CSS3也可能用于游戏界面的样式设置,如按钮、得分面板、游戏提示等非动画元素的布局和样式。 5. **事件监听与处理**: JavaScript中的事件监听器用于捕捉用户...
《鲁迅的《奔月》:颠覆传统,开创审美新向度》 鲁迅的短篇小说《奔月》是其《故事新编》中的一篇,它颠覆了我们对古代神话的传统认知,尤其对嫦娥这一角色的刻画,使得这篇作品在文学史上占据了独特的地位。鲁迅...
【嫦娥二号卫星的成功发射】标志着中国在航天科技领域的重大进步,这是一次重要的航天探索活动,开创了中国奔月的新纪元。嫦娥二号作为嫦娥一号的升级版,搭载了更高分辨率的CCD相机和其他改进的探测设备,获取了...
游戏源码分享下载 --- hjby.zipHTML5小游戏【火贱兔奔月--425款经典优秀H5小游戏合集】游戏源码分享下载 --- hjby.zipHTML5小游戏【火贱兔奔月--425款经典优秀H5小游戏合集】游戏源码分享下载 --- hjby.zipHTML5小...
初中语文文摘生活且看嫦娥咋奔月