Java 日志框架终极教程
概述
对于现代的 Java 应用程序来说,只要被部署到真实的生产环境,其日志的重要性就是不言而喻的,很难想象没有任何日志记录功能的应用程序被运行于生产环境中。日志 API 所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。在生产环境中,日志是查找问题来源的重要依据,应用程序运行时的产生的各种重要信息,都应该通过日志 API 来进行记录。
很多Java开发人员习惯于使用 System.out.println、System.err.println 以及异常对象的 printStrackTrace 方法来输出相关信息。这些使用方式虽然简便,但是所产生的信息量比较少,而且也没有被长久保存下来,在应用出现问题需要查找原因时,这些方式并不能提供有效的帮助。这些方式都不应该出现在正式的生产环境代码中,而是应该改为使用 Java 日志框架。使用日志框架并没有增加很多复杂度,但是所提供的好处是显著的。
框架
记录日志是 Java 应用开发中必不可少的功能特性,在 JDK 的早期版本中并不包含日志记录相关的 API 和实现。从 JDK 1.4 开始,SUN 官方在 java.util.logging 包中开始引入了 Java Logging API,简称为 JUL。此外,Java 社区也开发和贡献了很多开源、优秀的日志 API 和实现。其中比较优秀的有 Log4j、Logback、Log4J2、Apache Commons Logging(ACL) 和 SLF4J等等。
无论是 JDK 中提供的 JUL 框架,还是其他第三方提供的 Log4j、ACL 等框架,它们的目的都是为了满足在 Java 应用中可以便利地和清晰地记录日志信息的功能性需求。但是,这些框架在设计思路与理念在还是存在着巨大的差异,这也直接导致了它们在 Java 领域的市场份额的差异。此外,按照它们所处的层次差异与功能差异,可以将这些热门的日志框架分成两个派系:
- Java 日志实现框架:比如 JUL、Log4j、Logback、Log4j2
- Java 日志封装框架:比如 ACL、SLF4J、Log4j2
Log4j2 比较特殊,既是一个实现框架,又是一个封装框架。
针对在 Java 应用中进行日志信息记录的这个常见性需求,JDK 平台和第三方却提供了这么多优秀的框架和选择。对于 Java 的新手而言,如何选择适合当前项目的日志框架显然是一个不可不解决的问题。笔者作为过来人,决定竭尽全力,在博采众家之所长的情况下,为各位读者朋友写一个 Java 日志框架相关的终极教程。考虑到各个框架的流程度和功能特性,本教程将优先讲解如下列出的这些框架,后期根据实际情况可能会有调整。
java.util.logging(JUL)
log4j
logback
Apache Commons Logging(ACL)
SFL4J
Log4j2
总结
日志记录对于任意一个 Java 应用而言都是必不可少的功能性需求,但是由于历史原因,Java 领域出现了多种有优秀的日志框架,Java 新手面对这样的局面往往会感到迷茫。笔者作为过来人,希望在博采众长的基础上,写出一篇 Java 日志框架的终极教程,帮助读者朋友轻松掌握关于 Java 日志记录的所有知识点和技能。
Java 日志框架终极教程的更多相关文章
- Java程序员最常用的8个Java日志框架
转自:http://www.codeceo.com/article/8-java-log-framework.html 作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用 ...
- 转:Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- Java日志框架那些事儿
文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...
- Java基础学习总结(40)——Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- Java日志框架总结
1. 前言 从写代码开始,就陆陆续续接触到了许多日志框架,较常用的属于LOG4J,LogBack等.每次自己写项目时,就copy前人的代码或网上的demo.配置log4j.properties或者lo ...
- Java-最常用的Java日志框架整理
Java-最常用的Java日志框架整理 前言 Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日 ...
- java日志框架系列(4):logback框架xml配置文件语法
1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头, ...
- java日志框架log4j详细配置及与slf4j联合使用教程
最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...
- [转载]java日志框架log4j详细配置及与slf4j联合使用教程
一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...
随机推荐
- Autotest添加测试用例小结
Autotest本身是一个自动化测试框架,可以在上面添加各种测试工具用于系统测试.前几天我在上面添加了几个基于龙芯桌面5.0系统的性能测试工具.现在做以下总结,大体写以下添加的过程. 以unixben ...
- Web前端性能优化全攻略
网页制作poluoluo文章简介:Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多网站无情忽视的技术. Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多 ...
- 用require.js封装原生js轮播图
index.html页面: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- JS阻塞以及CSS阻塞
一.JS阻塞 所有的浏览器在下载JS文件的时候,会阻塞页面上的其他活动,包括其他资源的下载以及页面内容的呈现等等,只有当JS下载.解析.执行完,才会进行后面的 操作.在现代的浏览器中CSS资源和图片i ...
- top的用法
top命令可以用来方便地观察当前系统中运行的进程的信息,并可以在运行过程中执行改变进程的优先级.更改排序规则.导出状态信息等操作,非常方便. 1.主要选项 -d:后接秒数,状态更新的秒数,默认5秒-b ...
- js实现htmlToWordDemo
之前由于工作需要,需要实现将html内的一部分内容直接转为word和pdf的功能.就研究了一下方法并且实现了两个demo.今天先说一下html to word(才疏学浅,仅供交流,如有错误,请指出). ...
- 原生js二级联动
今天说的这个是原生js的二级联动,在空白页面里动态添加并作出相对应的效果. 1 //创建两个下拉列表 select标签 是下拉列表 var sel = document.createElement(& ...
- 源码安装zabbix_server服务端
按照上一篇安装lnmp环境:http://www.cnblogs.com/armo/p/6067716.html 保证lnmp正常运行,然后安装zabbix_server 安装依赖 yum -y in ...
- 玩转spring boot——websocket
前言 QQ这类即时通讯工具多数是以桌面应用的方式存在.在没有websocket出现之前,如果开发一个网页版的即时通讯应用,则需要定时刷新页面或定时调用ajax请求,这无疑会加大服务器的负载和增加了客户 ...
- python爬虫从入门到放弃前奏之学习方法
首谈方法 最近在整理爬虫系列的博客,但是当整理几篇之后,发现一个问题,不管学习任何内容,其实方法是最重要的,按照我之前写的博客内容,其实学起来还是很点枯燥不能解决传统学习过程中的几个问题: 这个是普通 ...