网站大量收购闲置独家精品文档,联系QQ:2885784924

Log4cpp学习笔记.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Log4cpp学习笔记课案

Log4cpp学习笔记 1 Log4cpp简介   Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。其类似的支持库还包括Java(log4j),C++(log4cpp、log4cplus),C(log4c),python(log4p)等。   Log4cpp有如下优点:   1. 提供了可扩展的多种日志记录方式;   2. 提供了NDC(嵌套诊断上下文),可用于多线程、多场景的跟踪调试;   3. 提供了完整的日志动态优先级控制,可随时调整需要记录的日志优先级;   4. 可通过配置文件完成所有配置并动态加载;   5. 性能优秀,内存占用小,经过编译后的log4cpp.dll大小仅有160kb;   6. 代码级的平台无关性,Log4cpp源代码经过编译后,适用于大多数主流的操作系统和开发工具; 7. 概念清晰,学习和使用方便,熟练程序员一天之内即可很好地应用log4cpp进行开发。Log4cpp组成 Log4cpp中的概念继承自log4j,最重要的是Category(种类)、Appender(附加目的地)和Layout(布局)三个概念,此外还有Priority(优先级)和NDC(嵌套的诊断上下文)等。layout类控制输出信息的格式和样式。你可以使你的类基于layout,来指定你想要的输出数据的风格。log4cpp自带两个layout类。分别是SimpleLayout和BasicLayout。 appender类用来输出信息到设备上。这些信息已经被layout对象格式化过了。设备可以是标准输出,一个文件或者一个string buffer。你可以得到你自己的appender类如果你想要在一个socket,共享内存缓冲区或者其他一些写延迟设备。loc4cpp自带了3个非常有用的appender类。分别是FileAppender,OstreamAppender,和StringQueueAppender。? category类pender 和它的优先级是category的重要组成部分。优先级控制那些可以被特定类记录的日志消息。当category对象被创建时,它会构造一个默认的标准输出的appender,和一个默认的优先级。可以在记录日志的目标列表中添加更多的appender。可以通过NOTSET,DEBUG,INFO,NOTICE,WARN,ERROR,CRIT,ALERT或者FATAL/EMERG,按照递增顺序或者重要等级来设置日志信息。每条信息都被记录到category对象。而消息本身也有一个优先级。如果消息的优先级更高或者与category的优先级相同,记录日志就会发生,否则这条消息会被忽略。category的优先级顺序如下:NOTSET DEBUG INFO NOTICE WARN ERROR CRIT ALERT FATAL = EMERGPriority被用来指定Category的优先级和日志的优先级, NDC则是一种用来区分不同场景中交替出现的日志的手段。   Log4cpp记录日志的原理如下:每个Category都有一个优先级,该优先级可以由setPriority方法设置,或者从其父Category中继承而来。每条日志也有一个优先级,当Category记录该条日志时,若日志优先级高于Category的优先级时,该日志被记录,否则被忽略。系统中默认的优先级等级如下:   typedef enum ...{EMERG = 0,   FATAL = 0,   ALERT = 100,   CRIT = 200,   ERROR = 300,   WARN = 400,   NOTICE = 500,   INFO = 600,   DEBUG = 700,   NOTSET = 800   } PriorityLevel;   注意:取值越小,优先级越高。 例如一个Category的优先级为101,则所有EMERG、FATAL、ALERT日志都可以记录下来,而其他则不能。 Category、Appender和Layout三者的关系如下:系统中可以有多个Category,它们都是继承自同一个根,每个Category负责记录自己的日志;每个Category可以添加多个Appender,每个Appender指定了一个日志的目的地,例如文件、字符流或者Windows日志,当Category记录一条日志时,该日志被写入所有附加到此Category的Appender;每个Append都包含一个Layout,该Layout定义了这个Appender上日志的格式。       Log4cpp日志记录原理图 3

您可能关注的文档

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档