概述

对于现代的 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 日志框架终极教程的更多相关文章

  1. Java程序员最常用的8个Java日志框架

    转自:http://www.codeceo.com/article/8-java-log-framework.html 作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用 ...

  2. 转:Java程序员最常用的8个Java日志框架

    作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...

  3. Java日志框架那些事儿

    文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...

  4. Java基础学习总结(40)——Java程序员最常用的8个Java日志框架

    作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...

  5. Java日志框架总结

    1. 前言 从写代码开始,就陆陆续续接触到了许多日志框架,较常用的属于LOG4J,LogBack等.每次自己写项目时,就copy前人的代码或网上的demo.配置log4j.properties或者lo ...

  6. Java-最常用的Java日志框架整理

    Java-最常用的Java日志框架整理 前言 Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日 ...

  7. java日志框架系列(4):logback框架xml配置文件语法

    1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头, ...

  8. java日志框架log4j详细配置及与slf4j联合使用教程

    最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...

  9. [转载]java日志框架log4j详细配置及与slf4j联合使用教程

    一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” 1 2 3 4 5 <dependen ...

随机推荐

  1. Scrapy的debug方式

    Scrapy不方便调试,但是为了深入学习框架内部的一些原理,有时候仅仅依靠日志是不够的.下面提供一种scrapy的debug方式 demo直接用来自官方例子来演示:https://github.com ...

  2. 基于TF-IDF的新闻标签提取

    基于TF-IDF的新闻标签提取 1. 新闻标签 新闻标签是一条新闻的关键字,可以由编辑上传,或者通过机器提取.新闻标签的提取主要用于推荐系统中,所以,提取的准确性影响推荐系统的有效性.同时,对于将标签 ...

  3. Maven基本安装与配置

    百度Maven,进入Maven官网,点击Download 点击下载Binary zip包,下载到电脑上相应的位置即可. 找到下载文件,进行解压,解压到相应的文件夹下面,并且记住路径. 打开系统-> ...

  4. [转] 面向对象原则之GOF是招式,九大原则才是精髓

    只有到了一定层次后才会真正的深入体会到面向对象的一些知识点啊! 不谈具体程序,谈的是你对软件的理解 模式: 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. “模式”这个 ...

  5. oracle创建数据库到2%不动问题

  6. 伞兵(Paratroopers)

    伞兵(Paratroopers) 时间限制: 1 Sec  内存限制: 128 MB 题目描述 公元 2500 年,地球和火星之间爆发了一场战争.最近,地球军队指挥官获悉火星入侵者将派一些伞兵来摧毁地 ...

  7. js中的confirm的运用

    <a href="javascript:void(0);" onclick='tuichu_queren();'>安全退出</a> <script t ...

  8. Struts2教程

    一.初识Struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的 ...

  9. [leetcode-594-Longest Harmonious Subsequence]

    We define a harmonious array is an array where the difference between its maximum value and its mini ...

  10. [leetcode-537-Complex Number Multiplication]

    Given two strings representing two complex numbers. You need to return a string representing their m ...