log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布。 
 
Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中。
 
Log4j是高度可配置的,并可通过在运行时的外部文件配置。它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,诸如:数据库,文件,控制台,UNIX系统日志等。

Log4j中有三个主要组成部分:

  • loggers: 负责捕获记录信息。

  • appenders : 负责发布日志信息,以不同的首选目的地。

  • layouts: 负责格式化不同风格的日志信息。

log4j的历史

  • 始于1996年初的E.U. SEMPER (安全电子市场为欧洲)跟踪API的项目。

  • 不计其数的改进,在几个大量的工作之后,API已经发展成为log4j,一个流行的日志记录包为Java。

  • 该软件包是Apache软件许可证,由开源认证是一个不折不扣的开源许可证下发布。

  • 最新log4j的版本,包括完整的源代码,类文件和文档可以在这里找到 http://logging.apache.org/log4j/.

log4j 特性:

  • log4j的是线程安全的

  • log4j是经过优化速度的

  • log4j是基于一个名为记录器的层次结构

  • log4j的支持每个记录器多输出追加器(appender)

  • log4j支持国际化。

  • log4j并不限于一组预定义的设备

  • 日志行为可以使用配置文件在运行时设置

  • log4j设计从一开始就是处理Java异常

  • log4j使用多个层次,即ALL,TRACE,DEBUG,INFO,WARN,ERROR和FATAL

  • 日志输出的格式可以通过扩展Layout类容易地改变

  • 日志输出的目标,以及在写入策略可通过实现Appender程序接口改变

  • log4j 会故障停止。然而,尽管它肯定努力确保传递,log4j不保证每个日志语句将被传递到目的地。

日志记录N个缺点及优点:

日志是软件开发的重要组成部分。一个精心编写的日志代码提供快速的调试,维护方便,以及应用程序的运行时信息结构化存储。

日志记录确实也有它的缺点。它可以减缓的应用程序。如果太详细,它可能会导致滚动失明。为了减轻这些影响,log4j被设计为是可靠,快速和可扩展。

由于记录很少为应用的主要重点,但log4j API致力于成为易于理解和使用。

log4j教程 1、概述的更多相关文章

  1. Log4j教程

    Log4j教程 一.快速上手 log4j把日志分为:all,trace,debug,info,warnig,error,fital,off等几个级别.级别高的会屏蔽级别的的信息. 1)maven导入j ...

  2. java的nio之:java的nio系列教程之概述

    一:java的nio的核心组件?Java NIO 由以下几个核心部分组成: ==>Channels ==>Buffers ==>Selectors 虽然Java NIO 中除此之外还 ...

  3. log4j教程 8、日志格式化

    Apache log4j 提供了各种布局对象,每一个对象都可以根据各种布局格式记录数据.另外,也可以创建一个布局对象格式化测井数据中的特定应用的方法. 所有的布局对象 - Appender对象收到 L ...

  4. log4j教程 5、示例程序

    前面我们已经看到了如何创建一个配置文件.本教程将讲解如何生成调试信息和日志在一个简单的文本文件. 下面是我们的例子中创建了一个简单的配置文件.这里再重复一次: 下载最新的Log4j库:http://l ...

  5. Log4j的简要概述

    读取配置文件的三种使用方式: 1.Java代码:BasicConfigurator.configure() 2.Java特性:键值对解析(properties文件) PropertyConfigura ...

  6. Linux makefile教程之概述一[转]

    概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些 Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...

  7. ActiveMQ基础教程JMS概述

    什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息 ...

  8. Java基础教程(1)--概述

    一.什么是Java语言   Java是于1996年由Sun公司发布的一种极富创造力的面向对象的程序设计语言.它不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java ...

  9. log4j教程 12、日志记录到数据库

    log4j API提供 org.apache.log4j.jdbc.JDBCAppender 对象,它能够将日志信息在指定的数据库. JDBCAppender 配置: Property 描述 buff ...

随机推荐

  1. P3200 [HNOI2009]有趣的数列

    题目描述 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<...<a2n ...

  2. 块元素包裹img空隙问题

    解决方法 1.img设为block2.img对齐方式vertical-align:bottom(middle/top),不是baseline就行3.父容器font-size:0或line-height ...

  3. Educational Codeforces Round 42 (Rated for Div. 2) B

    B. Students in Railway Carriage time limit per test 2 seconds memory limit per test 256 megabytes in ...

  4. CENTOS6.5 安装 mysql5.6 以及搭建双主

    一.Mysql5.6.10安装 1.1.必要软件 yum -y install gcc gcc-c++ autoconf automake bison ncurses-devel libtool-lt ...

  5. css去掉点击连接时所产生的虚线边框技巧兼容符合w3c标准的浏览器

    解决方法: 1.在css中加上outline:none; 代码如下: a.fontnav { text-align:left;color:#555; text-decoration:none; out ...

  6. dict和set背后的实现原理

    # 先说结论 ''' dict的性能远大于list 在list中,随着数据的增大,时间也会增大 在dict中,随着数据的增大,时间没有变化 ''' # 目的:我们研究为什么dict的性能远大于list ...

  7. 多线程之:ThreadLocal

    Java中ThreadLocal类可以使创建的变量只被同一个线程进行读和写操作,即使有多个线程同时执行同一段代码,并且这段代码中又有一个指向同一个ThreadLocal变量的引用,这些线程依然不能看到 ...

  8. JavaScript Promise迷你书(中文版)--再学习

    上次粗翻了一下,感觉没吃透,这次深入体会一下. <script> function getURL(URL) { return new Promise(function(resolve, r ...

  9. Codeforces 581F Zublicanes and Mumocrates(树型DP)

    题目链接  Round 322 Problem F 题意  给定一棵树,保证叶子结点个数为$2$(也就是度数为$1$的结点),现在要把所有的点染色(黑或白) 要求一半叶子结点的颜色为白,一半叶子结点的 ...

  10. 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- chess(威佐夫博奕)

    ---恢复内容开始--- 链接:https://www.nowcoder.com/acm/contest/116/G来源:牛客网 题意:一个棋盘,老王和小人下棋,棋子只能往下或者往左或者往左下走,小人 ...