一、介绍

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

log4j的历史

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

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

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

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

Log4j使用的几个关键点?

根记录器(Logger),输出端(appenders)和布局(layouts)

a)定义根记录器的格式为

log4j.rootLogger = [ level ], appendName1, appendName2, „appendNameN。同一个记录器可

有多个输出端。PS:level的级别(此级别可以自定义,系统默认提供了以下级别)

◆debug//调试信息

◆info//一般信息

◆warn//警告信息

◆error//错误信息

◆fatal//致命错误信

b)定义一个appender的输出目的地的格式为

log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j

提供了以下几种常用的输出目的地:

◆org.apache.log4j.ConsoleAppender,将日志信息输出到控制台

◆org.apache.log4j.FileAppender,将日志信息输出到一个文件

◆org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件

◆org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如为example.log的文件会改名为example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为example.log.2,同时产生example.log文件。依此类推,直到example.log. MaxBackupIndex,MaxBackupIndex的值可在配置文件中定义。

◆org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方。

◆org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。

c)输出格式(布局)layout Log4j

提供了一下几种布局:

◆org.apache.log4j.HTMLLayout,以HTML表格形式布局

◆org.apache.log4j.PatternLayout,可以灵活地指定布局模式

◆org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串

PS:ConversionPattern参数的格式含义

%c 输出日志信息所属的类的全名

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28

%f 输出日志信息所属的类的类名

%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

%m 输出代码中指定的信息,如log(message)中的message

%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推

%r 输出自应用启动到输出该日志信息所耗费的毫秒数

%t 输出产生该日志事件的线程名

log4j 特性:

  • log4j的是线程安全的

  • log4j是经过优化速度的

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

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

  • log4j支持国际化。

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/yhsj/p/4909989.html

log4j简介及应用相关推荐

  1. log4j简介和使用

    log4j简介和使用 一.log4j是什么 log4j–log for java翻译过来就是java的日志,它是Apache提供的一个强有力的日志操作包.它是java项目中常用的日志工具,配置简单,功 ...

  2. Log4j学习—Log4j简介

    Log4j学习-Log4j简介 一. Log4j使用      1. 配置运行环境,包含log4j-1.2.9.jar,使用BasicConfigurator.configure()配置运行环境.   ...

  3. java 日志输出 log4j 简介

    日志是我们日常处理项目错误以及了解程序运行状态必不可少的部分,我们今天就来讲讲Apache的开源项目log4j,log4j是一个功能强大的日志组件,提供方便的日志记录.在Apache官网(https: ...

  4. log4j简介与学习

    第一章 log4j的好处 log4j的好处在于: 1)        通过修改配置文件,就可以决定log信息的目的地--控制台.文件.GUI组件.   甚至是套接口服务器.NT的事件记录器.UNIX  ...

  5. 使用Log4j进行日志操作(牛小浩)不错的

    使用Log4j进行日志操作   一.Log4j简介   (1)概述 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是 ...

  6. org.apache.log4j.Logger详解

    1. 概述 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的 :监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开 ...

  7. 转 Log4j.properties配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  8. Log4j、slf4j

    1.Log4j 1.1 Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出位置)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志 ...

  9. Log4j.properties 配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

最新文章

  1. -16 | 12 等于多少
  2. 这几本高分算法书助你稳步提升
  3. 代码大全读后感(二)
  4. python操作系统接口错误_Python os模块和sys模块 操作系统的各种接口
  5. MADDPG中环境怎么配置,multiagent包解决
  6. 上课点名app_【APP种草】网瘾少年的自我救赎之最强锁机软件
  7. 设计模式-策略模式(Strategy)
  8. C++中的继承(派生)的一些误区
  9. Struts2+Spring+Hibernate搭建全解!
  10. android数码管字体,matplotlib绘图时显示额外的“figure”浮窗
  11. HTML5期末大作业:中华美德网站设计——中华美德(6页) HTML+CSS+JavaScript web大作业 静态网页
  12. docker卸载mysql_Docker卸载镜像
  13. 使用python和requests爬取世界卫生组织vigiaccess不良反应数据库
  14. TikTok云控系统是什么,有什么功能
  15. Adaptive AutoSAR 标准介绍
  16. nes游戏开发_NES Classic运行Linux,新的0 AD alpha,以及更多游戏新闻
  17. 怎么知道跟交换机互联的交换机_电话交换机日常怎么维护和保养?
  18. web前端学习到什么程度可以面试工作
  19. 微信公众平台账号找回方法
  20. 缺陷跟踪管理工具-Mantis BugFree Bugzilla

热门文章

  1. SPSS学习中涉及的统计知识
  2. Microsoft Dynamics CRM 前瑞开发
  3. C++第10周项目2扩展之2参考——迭代求和
  4. javascript操作符之new 也疯狂 (2)
  5. Jlink commander、MCU GD32启动方式、Bootloader
  6. ARM(IMX6U)裸机C语言版本LED驱动实验(汇编进入处理器SVC模式、SP堆内存、跳转main函数、链接起始地址)
  7. 电脑技巧:Win10系统中的这六种模式介绍
  8. 硬件知识:USB3.0和USB2.0的区别,看完你就懂了!
  9. C#利用SQLDMO备份与还原数据库
  10. .NET Core 学习资料精选:入门