Log4j的使用说明

Log4j基本使用方法

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显 示内容。

2.1、定义配置文件

其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:
1.配置根Logger,其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。

2.配置日志信息输出目的地Appender,其语法为:

  1. log4j.appender.appenderName = fully.qualified.name.of.appender.class
  2. log4j.appender.appenderName.option1 = value1
  3. log4j.appender.appenderName.option = valueN

其中,Log4j提供的appender有以下几种:

  1. org.apache.log4j.ConsoleAppender(控制台),
  2. org.apache.log4j.FileAppender(文件),
  3. org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  4. org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  5. org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

3.配置日志信息的格式(布局),其语法为:

  1. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  2. log4j.appender.appenderName.layout.option1 = value1
  3. log4j.appender.appenderName.layout.option = valueN

其中,Log4j提供的layout有以e几种:

  1. org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  2. org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  3. org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  4. org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL  
%r 输出自应用启动到输出该log信息耗费的毫秒数  
%c 输出所属的类目,通常就是所在类的全名  
%t 输出产生该日志事件的线程名  
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”  
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

2.2、在代码中使用Log4j

1.得到记录器

使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:

public static Logger getLogger( String name)

通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:

static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

2.读取配置文件

当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:

  1. BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
  2. PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
  3. DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

3.插入记录信息(格式化日志信息)

当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:

  1. Logger.debug ( Object message ) ;
  2. Logger.info ( Object message ) ;
  3. Logger.warn ( Object message ) ;
  4. Logger.error ( Object message ) ;

2.3、日志级别

每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分为:
A:off 最高等级,用于关闭所有日志记录。
B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm 表明会出现潜在的错误情形。
E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all 最低等级,用于打开所有日志记录。

上面这些级别是定义在org.apache.log4j.Level类中。Log4j只建议使用4个级别,优先级从高到低分别是error,warn,info和debug。通过使用日志级别,可以控制应用程序中相应级别日志信息的输出。例如,如果使用b了info级别,则应用程序中所有低于info级别的日志信息(如debug)将不会被打印出来。

Log4j的配置文件log4j.properties

### 设置输出级别,这里debug以上的才会输出###
### Log4j根据日志信息的重要程度,分OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
### Log4j官方建议实际实用的话,Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUGlog4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n### 输出DEBUG 级别以上的日志到文件 E://JavaProjects/Log4j/debug.log ###
log4j.appender.D = org.apache.log4j.FileAppender
log4j.appender.D.File = E://JavaProjects/Log4j/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 输出ERROR 级别以上的日志到文件E://JavaProjects/Log4j/error.log ###
log4j.appender.E = org.apache.log4j.FileAppender
log4j.appender.E.File = E://JavaProjects/Log4j/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

 

转载于:https://www.cnblogs.com/schoolbag/p/10978801.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机的双一流学校,分数不够上双一流大学计算机专业,上这些大学也不错,实力非常强...

有句话说“穷人就学计算机”,为什么会有这种说法呢?学计算机是穷人翻身最快的途径?的确,因为计算机是一项可以不靠人脉、不需要过高的口才的技术性工作。对于穷人来说,无背景无社会资源,只能靠自己&#xf…

[html] 要减少DOM的数量有什么办法吗?

[html] 要减少DOM的数量有什么办法吗? 类似长列表的话可以只渲染可视区域的DOM元素(比如10个),上面用空的DIV或者padding撑开阴影效果、清除浮动等的使用伪元素操作列表等大量的DOM元素,可以创建文档片段节点(Fragment…

python怎么输出表格中随机数_python 输出一个随机数

优化MySchool数据库(四)关于“无法附件数据库”过程的遇到的问题: 1.数据文件本身,具有访问权限的限制 ---- 选中 数据库文件所在的文件夹---->右键菜单(属性)----> 安全 --->User用户 ...Reason we use CamelCamel is mainly for integration purpose, in our projec…

计算机操作系统中程序的功能是,计算机操作系统的功能和分类研究

摘 要:计算机操作系统是一种系统的体系,是计算机运行的核心,同时它精确的掌管着计算机软件,资源硬件,精确的管理着计算机的各项工作,组织计算机工作的各个重要的流程。随着时代的发展和科技的日新月异&…

Jupyter Notebook 使用小记

简介 Jupyter Notebook 是一款几乎综合所有编程语言,能够把软件代码、计算输出、解释文档、多媒体资源整合在一起的多功能科学计算平台。具有如下优点: 整合所有资源交互性编程体验零成本重现结果安装 本地安装 # python3 python3 -m pip install --upgr…

陕西省高级职称 计算机要求,陕西省卫生高级职称评审申报条件

陕西省卫生高级职称评审申报条件2014年-2015年陕西省卫生高级职称评审申报条件我所经历的陕西省卫生高级职称评审经验谈 贴上一个目前陕西省最权威的晋升高级职称的文件,重点看最后一段我的个人经验。(二)学历资历条件:1、晋升正高级资格,必须…

常微分方程

本书主要介绍了常微分方程的初等解法、基本理论和稳定性理论初步。具体包括:常微分方程的初等解法、线性常微分方程组、高阶常系数线性方程、常微分方程的幂级数解法、常微分方程基本理论、常微分方程定性理论初步和一阶偏微分方程。 本书在编写中注重开拓读者思路&…

Django第二篇

django第二篇 1.静态文件配置 接口前缀: ​ STATIC_URL /static/ 跟静态文件夹的名字没有关系,默认情况下这个前缀跟静态文件夹名字一样 文件配置 STATICFILES_DIRS [ ​ os.path.join(BASE_DIR,static) ] static:就是你的静态文件夹路径,可…

avi和音频合成 ffmpeg_使用Java和ffmpeg把音频和视频合成视频的操作方法

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量&a…

html input file name,HTML Input FileUpload name用法及代码示例

name属性用于设置或返回文件上传按钮的name属性的值。名称属性用于在提交到服务器后标识表单数据。用法:返回名称属性:fileuploadObject.name设置名称属性:fileuploadObject.namename属性值:name:指定文件上传按钮的名称。示例1:返…

PS教程第三课:PS界面

ctrl 移动 滚轮 多种命令

洛谷 P1589 泥泞路 2019青岛市竞赛(贪心)

题目链接 https://www.luogu.org/problemnew/show/P1589 解题思路 用结构体存下每一段泥泞路的左端点和右端点,然后用sort根据左端点排序,采用贪心的思想,从左往右遇到未覆盖的点ans,然后去覆盖l的长度,这时现在覆盖到…

坡度土方计算案例_土石方工程造价中的细节解析(案例+计算式)

每个房建工程都避不开土石方工程,许多人知道怎样算量,也知道怎样组价,但是却有很多小细节的注意点被忽略,现将土石方工程从算量到组价的全过程整理,希望对大家深刻理解土石方规则,掌握手算及软件算技巧、组…

能测试快充真假的软件,苹果iOS 12可自行测试真假快充:山寨充电器将被洗牌

苹果2018新品发布会临近,有爆料称本次苹果将带来三款新机并且推出最新的系统版本iOS 12。近期,苹果也接连推送了多个iOS 12 Beta版本供大家尝鲜,截止目前,已经更新到了iOS12 Beta9。(iOS12 Beta9升级教程)在更新iOS 12 Beta9之后&…

MM看过来!教你如何打扮变成时尚达人 - 生活至上,美容至尚!

发色选择红色铜色珊瑚色等亮色,衣着选择大红粉红等亮色. 让脸变白的方法 : 1.要睡觉的时候,拿小黄瓜切雹放置脸上过几分钟拿下来,一个月您的脸就会 白嫩。 2.睡前用最便宜的化妆棉加上化妆水完全浸湿后,敷在脸上20分钟,每周3 次&a…

P1078 文化之旅[最短路]

题目背景 本题是错题,后来被证明没有靠谱的多项式复杂度的做法。测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确。因此本题题目和数据仅供参考。 题目描述 有一位使者要游历各国,他每…

小学生计算机课堂实践的重要性,浅谈小学信息技术教育重要性.doc

浅谈小学信息技术教育重要性浅谈小学信息技术教育重要性   随着科技的发展,信息技术与人们的生活息息相关。我们通过不同的技术手段,获取我们生活、工作和学习中所需要的一切信息,而作为教授人们认识信息及使用技术获取、编辑、传递信息基础…