log4j简介和使用

一、log4j是什么

log4j–log for java翻译过来就是java的日志,它是Apache提供的一个强有力的日志操作包。它是java项目中常用的日志工具,配置简单,功能丰富。log4j可以用来跟踪、调试、维护程序,(比如原先我们达到同样的效果需要用很多的输出语句,有了它就可以把我们从纷扰的输出语句中解放出来)。它还可以将日志按包名输出,指定输出位置,设置优先级等,更多相关内容在后面详细介绍。

二、导入jar包,创建配置文件配置log4j

由于我是在web工程中使用maven导入jar包,在这里直接放依赖的代码:

<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.15</version><exclusions><exclusion><groupId>com.sun.jmx</groupId><artifactId>jmxri</artifactId></exclusion><exclusion><groupId>com.sun.jdmk</groupId><artifactId>jmxtools</artifactId></exclusion><exclusion><groupId>javax.jms</groupId><artifactId>jms</artifactId></exclusion></exclusions>
</dependency>

(注:exclusions中的内容非必需,我只是为了避免潜在的错误才使用的)
然后在src目录下新建文件log4j.properties文件,配置文件内容的含义在后面解释
(一开始本是用我自己写的配置文件的,但是我的又乱又潦草,实在拿不出手,就从网上了找了一段配置文件内容)

三、log4j的构成和配置文件的写法

3.1、Log4j由四个部分组成:
1.日志写出器(Logger):用于输入日志信息。Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远存在,且不能通过名字检索或引用。
2.配属日志写出目的地(appender):输出日志信息到指定位置。Log4j中支持多种appender,如 console、files。
3.日志信息的输出格式(layout):控制Log信息的输出格式,格式化输出信息。
4.日志信息的优先级:优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度

3.2、rootLogger:
格式为 log4j.rootLogger=[level],appenderName, …,其中level就是设置需要输出信息的级别,appenderName就是指定日志信息输出到哪个地方,可以有多个(我把它理解成的输出目的地appender的代号,这个在后面还要配置,使得appender和appenderName匹配,就像上面的第3行和第8行,单纯是个人理解)

3.3、appender输出目的地:
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置方式就像上面程序图片中的第4行:
log4j.appender.appenderName=输出目的地(appenderName在rootLogger里配置过了,把它替换成你在rootLogger里配置的那个Name)

3.4、layout输出格式
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
配置方式:
log4j.appender.appenderName.layout = 输出格式
log4j.appender.appenderName.layout.option = value
如果感觉上面这两个语句有点抽象,可参考上面程序图片的第11行,第12行代码。

如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern(程序第12行),它的配置方式如下:(这里参考了博主「jhappyfly」的文章)

%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
%r:输出自应用程序启动到输出该log信息耗费的毫秒数。
%t:输出产生该日志事件的线程名。
%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:输出日志信息所属的类目,通常就是所在类的全名。
%M:输出产生日志信息的方法名。
%F:输出日志消息产生时所在的文件名称。
%L::输出代码中的行号。
%m::输出代码中指定的具体日志信息。
%n:输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"。
%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%:输出一个"%“字符。
另外,还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式。如:
%20c:指定输出category的名称,最小的长度是20,如果category的名称长度小于20的话,默认的情况下右对齐。
%-20c:”-"号表示左对齐。
%.30c:指定输出category的名称,最大的长度是30,如果category的名称长度大于30的话,就会将左边多出的字符截掉,但小于30的话也不会补空格。

3.5、优先级
Log4j根据日志信息的重要程度,常用的优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。在rootLogger里设置,它只能显示优先级比它高的日志信息,如果设置为INFO,那么就不会显示DEBUG级别的信息。

log4j简介和使用相关推荐

  1. Log4j学习—Log4j简介

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

  2. java 日志输出 log4j 简介

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

  3. log4j简介及应用

    一.介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守 ...

  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. php播放ppt代码,PHP+JavaScript幻灯片代码
  2. ibatisnet 学习手记(1)
  3. 【转】容器 C++ set和map
  4. PHPStorm/IntelliJ IDEA 设置SFTP
  5. 安卓手机软件开发_你想拿高薪吗?想成为手机软件开发工程师吗?圆你5g梦想!...
  6. 【细胞分割】基于matlab GUI生物细胞计数【含Matlab源码 758期】
  7. 3.7-10设计一个算法,采用分治法求一个整数序列中的最大最小元素
  8. pc工具不支持stb的加密方式_经验 | 11个超实用的小工具
  9. word中删除分节符时页面格式会发生改变
  10. 其实我们可以做自己的心理医生
  11. Parsing error: Decorators cannot be used to decorate object literal properties
  12. 【Java】Date日期类诠释
  13. 防汛可视化:雨季来临,如何做好防汛措施?
  14. 关于PHP中如何跟踪报错的手段
  15. 吃透 Vue 项目开发实践|16个方面深入前端工程化开发技巧【上】
  16. 开关电源学习——基本元件之电容
  17. [daily][mathematica][fcitx] mathematica 无法输入中文的问题
  18. 《三体》-- 刘慈欣
  19. 目标人脸检测与识别(计算机视觉)
  20. Jina AI 她力量 | Impact Tech, She Can

热门文章

  1. catkin屏蔽掉不想编译的package
  2. 分层领域模型规约与领域模型命名规约
  3. 【观察】戴森HP04深度体验:融四唯一,超越想象
  4. 安装及运行openface的大坑
  5. C8051f320 ADC调试
  6. Dell P2721Q 4K显示器 配MacBook Pro 15寸 Late 2013 60Hz刷新率
  7. Python之爬虫-- Requests
  8. iphone一键转移_怎样把旧手机里的照片一键转移到新iPhone 8 plus上?
  9. 住建部就《“多规合一”业务协同平台技术标准》征求意见
  10. 桌面虚拟现实系统是一种以计算机为基础,虚拟现实与增强现实