﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-silekey-文章分类-LOG4CPLUS</title><link>http://www.cppblog.com/silekey/category/9021.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 24 May 2009 12:08:16 GMT</lastBuildDate><pubDate>Sun, 24 May 2009 12:08:16 GMT</pubDate><ttl>60</ttl><item><title>log4cplus学习笔记</title><link>http://www.cppblog.com/silekey/articles/74077.html</link><dc:creator>鹿哥</dc:creator><author>鹿哥</author><pubDate>Tue, 17 Feb 2009 13:08:00 GMT</pubDate><guid>http://www.cppblog.com/silekey/articles/74077.html</guid><wfw:comment>http://www.cppblog.com/silekey/comments/74077.html</wfw:comment><comments>http://www.cppblog.com/silekey/articles/74077.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/silekey/comments/commentRss/74077.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/silekey/services/trackbacks/74077.html</trackback:ping><description><![CDATA[<o:smarttagtype name="chmetcnv" namespaceuri="urn:schemas-microsoft-com:office:smarttags"></o:smarttagtype><o:smarttagtype name="chsdate" namespaceuri="urn:schemas-microsoft-com:office:smarttags"></o:smarttagtype>
<link href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel=themeData>
<link href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel=colorSchemeMapping>
<object id=ieooui classid=clsid:38481807-ca0e-42d2-bf39-b33af135cc4d></object><style>
st1\:*{behavior:url(#ieooui) }
</style><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:1;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:0 0 0 0 0 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman","serif";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
h1
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-link:"标题 1 Char";
mso-style-next:正文;
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
line-height:240%;
mso-pagination:lines-together;
page-break-after:avoid;
mso-outline-level:1;
font-size:22.0pt;
font-family:"Times New Roman","serif";
mso-font-kerning:22.0pt;}
a:link, span.MsoHyperlink
{mso-style-unhide:no;
color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:purple;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
pre
{mso-style-unhide:no;
mso-style-link:"HTML 预设格式 Char";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:宋体;
mso-bidi-font-family:宋体;}
span.1Char
{mso-style-name:"标题 1 Char";
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"标题 1";
mso-ansi-font-size:22.0pt;
mso-bidi-font-size:22.0pt;
mso-font-kerning:22.0pt;
font-weight:bold;}
span.HTMLChar
{mso-style-name:"HTML 预设格式 Char";
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"HTML 预设格式";
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:宋体;
mso-ascii-font-family:宋体;
mso-hansi-font-family:宋体;
mso-bidi-font-family:宋体;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-size:10.0pt;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
mso-ascii-font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-hansi-font-family:"Times New Roman";
mso-font-kerning:0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:1963808052;
mso-list-type:hybrid;
mso-list-template-ids:1408118154 888314794 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-text:%1>;
mso-level-tab-stop:18.0pt;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">以前是看过的，后来由于没用又忘光了。现在又重新看，好浪费时间。</span></p>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">费话不多说。</span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<h1><span lang=EN-US>Log4cplus </span><span style="FONT-FAMILY: 宋体">概述</span></h1>
<br><br>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">首先</span><span lang=EN-US>,log4cplus</span><span style="FONT-FAMILY: 宋体">是一个日志记录的库，目的很简单，就是把合适的信息送到正确的位置上去。</span></p>
<p class=MsoNormal><span lang=EN-US>Log4cplus </span><span style="FONT-FAMILY: 宋体">由4部分组成：</span></p>
<p class=MsoNormal style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt"><span lang=EN-US>1&gt;Logger<span>&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="FONT-FAMILY: 宋体">日志模块</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">程序中唯一一个必须得使用的模块，解决了在哪里使用</span><span style="FONT-FAMILY: 宋体">日志的问题</span></p>
<pre style="MARGIN-LEFT: 96pt; TEXT-INDENT: -96pt"><span lang=EN-US>2&gt; Appenders<span>&nbsp;&nbsp;&nbsp; </span></span>接收日志的各个设备<span lang=EN-US>,</span>如控制台、文件、网络等。解决了输出到哪里去的问题</pre>
<p class=MsoNormal><span lang=EN-US><span>3</span>&gt;Layout<span>&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="FONT-FAMILY: 宋体">格式化输出信息</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">解决了如何输出的问题。<br></span></p>
<p class=MsoNormal><span lang=EN-US><o:p><br>4&gt;Filter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;过滤器，解决哪些信息需要输出的问题，比如DEBUG，WARR,INFO等的输出控制.<br>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Log4cplus</span><span style="FONT-FAMILY: 宋体">的主要部件关系图如下：</span><span lang=EN-US><o:p><img style="WIDTH: 684px; HEIGHT: 384px" src="http://www.cppblog.com/images/cppblog_com/silekey/ss.JPG" border=0><br></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<h1><span lang=EN-US>Log4cplus</span><span style="FONT-FAMILY: 宋体">格式化输出字符串</span></h1>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">来源：</span><span lang=EN-US><a href="http://log4cplus.sourceforge.net/docs/html/classlog4cplus_1_1PatternLayout.html">http://log4cplus.sourceforge.net/docs/html/classlog4cplus_1_1PatternLayout.html</a></span></p>
<p class=MsoNormal><span lang=EN-US><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><a href="http://www.cppblog.com/tx7do/articles/11717.html">http://www.cppblog.com/tx7do/articles/11717.html</a></span></p>
<pre>关于预定义标识符，<span lang=EN-US>log4cplus</span>文档中提供了详细的格式说明，我每种都试了一下，以上述代码为例，根据不同<span lang=EN-US><br>
</span>的<span lang=EN-US>pattern</span>，各种消息格式使用情况列举如下：</pre>
<pre>（<span lang=EN-US>1</span>）<span lang=EN-US>"%%"</span>，转义为<span lang=EN-US>%, </span>即，<span lang=EN-US>std::string pattern = "%%" </span>时输出<span lang=EN-US>: "%"<br>
</span>（<span lang=EN-US>2</span>）<span lang=EN-US>"%c"</span>，输出<span lang=EN-US>logger</span>名称，比如<span lang=EN-US>std::string pattern ="%c" </span>时输出<span lang=EN-US>: "test_logger.subtest"</span>，<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp; </span>也可以控制<span lang=EN-US>logger</span>名称的显示层次，比如<span lang=EN-US>"%c{1}"</span>时输出<span lang=EN-US>"test_logger"</span>，其中数字表示层次。<span lang=EN-US><br>
</span>（<span lang=EN-US>3</span>）<span lang=EN-US>"%D"</span>，显示本地时间，当<span lang=EN-US>std::string pattern ="%D" </span>时输出<span lang=EN-US>:"2004-10-16 18:55:45"</span>，<span lang=EN-US>%d</span>显示标准时间，<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp; </span>所以当<span lang=EN-US>std::string pattern ="%d" </span>时输出<span lang=EN-US> "2004-10-16 10:55:45" </span>（因为我们是东<span lang=EN-US>8</span>区，差<span lang=EN-US>8</span>个小时啊）。<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp; </span>可以通过<span lang=EN-US>%d{...}</span>定义更详细的显示格式，比如<span lang=EN-US>%d{%H:%M:%s}</span>表示要显示小时<span lang=EN-US>:</span>分钟：秒。大括号中可显示的<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp; </span>预定义标识符如下：<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp; <br>
%a -- </span>表示礼拜几，英文缩写形式，比如<span lang=EN-US>"Fri"<br>
%A -- </span>表示礼拜几，比如<span lang=EN-US>"Friday"<br>
%b -- </span>表示几月份，英文缩写形式，比如<span lang=EN-US>"Oct"<br>
%B -- </span>表示几月份，<span lang=EN-US>"October"<br>
%c -- </span>标准的日期＋时间格式，如<span lang=EN-US> "Sat Oct 16 18:56:19 2004"<br>
%d -- </span>表示今天是这个月的几号<span lang=EN-US>(1-31)"16"<br>
%H -- </span>表示当前时刻是几时<span lang=EN-US>(0-23)</span>，如<span lang=EN-US> "18"<br>
%I -- </span>表示当前时刻是几时<span lang=EN-US>(1-12)</span>，如<span lang=EN-US> "6"<br>
%j -- </span>表示今天是哪一天<span lang=EN-US>(1-366)</span>，如<span lang=EN-US> "290"<br>
%m -- </span>表示本月是哪一月<span lang=EN-US>(1-12)</span>，如<span lang=EN-US> "10"<br>
%M -- </span>表示当前时刻是哪一分钟<span lang=EN-US>(0-59)</span>，如<span lang=EN-US> "59"<br>
%p -- </span>表示现在是上午还是下午，<span lang=EN-US> AM or PM<br>
%q -- </span>表示当前时刻中毫秒部分<span lang=EN-US>(0-999)</span>，如<span lang=EN-US> "237"<br>
%Q -- </span>表示当前时刻中带小数的毫秒部分<span lang=EN-US>(0-999.999)</span>，如<span lang=EN-US> "430.732"<br>
%S -- </span>表示当前时刻的多少秒<span lang=EN-US>(0-59)</span>，如<span lang=EN-US> "32"<br>
%U -- </span>表示本周是今年的第几个礼拜，以周日为第一天开始计算<span lang=EN-US>(0-53)</span>，如<span lang=EN-US> "41"<br>
%w -- </span>表示礼拜几，<span lang=EN-US>(0-6, </span>礼拜天为<span lang=EN-US>0)</span>，如<span lang=EN-US> "6"<br>
%W -- </span>表示本周是今年的第几个礼拜，以周一为第一天开始计算<span lang=EN-US>(0-53)</span>，如<span lang=EN-US> "41"<br>
%x -- </span>标准的日期格式，如<span lang=EN-US> "<st1:chsdate w:st="on" year="2004" month="10" day="16" islunardate="False" isrocdate="False">10/16/04</st1:chsdate>"<br>
%X -- </span>标准的时间格式，如<span lang=EN-US> "19:02:34"<br>
%y -- </span>两位数的年份<span lang=EN-US>(0-99)</span>，如<span lang=EN-US> "04"<br>
%Y -- </span>四位数的年份，如<span lang=EN-US> "2004"<br>
%Z -- </span>时区名，比如<span lang=EN-US> "GMT"</span></pre>
<pre>（<span lang=EN-US>4</span>）<span lang=EN-US>"%F"</span>，输出当前记录器所在的文件名称，比如<span lang=EN-US>std::string pattern ="%F" </span>时输出<span lang=EN-US>: "main.cpp"<br>
</span>（<span lang=EN-US>5</span>）<span lang=EN-US>"%L"</span>，输出当前记录器所在的文件行号，比如<span lang=EN-US>std::string pattern ="%L" </span>时输出<span lang=EN-US>: "51"<br>
</span>（<span lang=EN-US>6</span>）<span lang=EN-US>"%l"</span>，输出当前记录器所在的文件名称和行号，比如<span lang=EN-US>std::string pattern ="%L" </span>时输出<span lang=EN-US>:<br>
&nbsp;&nbsp;&nbsp;&nbsp; "main.cpp:51"<br>
</span>（<span lang=EN-US>7</span>）<span lang=EN-US>"%m"</span>，输出原始信息，比如<span lang=EN-US>std::string pattern ="%m" </span>时输出<span lang=EN-US>: "teststr"</span>，即上述代码中<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp; LOG4CPLUS_DEBUG</span>的第二个参数，这种实现机制可以确保原始信息被嵌入到带格式的信息中。<span lang=EN-US><br>
</span>（<span lang=EN-US>8</span>）<span lang=EN-US>"%n"</span>，换行符，没什么好解释的<span lang=EN-US><br>
</span>（<span lang=EN-US>9</span>）<span lang=EN-US>"%p"</span>，输出<span lang=EN-US>LogLevel</span>，比如<span lang=EN-US>std::string pattern ="%p" </span>时输出<span lang=EN-US>: "DEBUG"<br>
</span>（<span lang=EN-US>10</span>）<span lang=EN-US>"%t"</span>，输出记录器所在的线程<span lang=EN-US>ID</span>，比如<span lang=EN-US>std::string pattern ="%t" </span>时输出<span lang=EN-US>: "1075298944"<br>
</span>（<span lang=EN-US>11</span>）<span lang=EN-US>"%x"</span>，嵌套诊断上下文<span lang=EN-US>NDC (nested diagnostic context) </span>输出，从堆栈中弹出上下文信息，<span lang=EN-US>NDC</span>可以用对<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>不同源的<span lang=EN-US>log</span>信息（同时地）交叉输出进行区分，关于<span lang=EN-US>NDC</span>方面的详细介绍会在下文中提到。<span lang=EN-US><br>
</span>（<span lang=EN-US>12</span>）格式对齐，比如<span lang=EN-US>std::string pattern ="%-<st1:chmetcnv w:st="on" unitname="m" sourcevalue="10" hasspace="False" negative="False" numbertype="1" tcsc="0">10m</st1:chmetcnv>"</span>时表示左对齐，宽度是<span lang=EN-US>10</span>，此时会输出<span lang=EN-US>"teststr&nbsp;&nbsp; "</span>，当<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>然其它的控制字符也可以相同的方式来使用，比如<span lang=EN-US>"%-12d"</span>，<span lang=EN-US>"%-5p"</span>等等（刚接触<span lang=EN-US>log4cplus</span>文档时还以为<span lang=EN-US><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "%-5p"</span>整个字符串代表<span lang=EN-US>LogLevel</span>呢，呵呵）。</pre>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<h1><span lang=EN-US>Log4cplus </span><span style="FONT-FAMILY: 宋体">配置文件</span></h1>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">在</span><span lang=EN-US>log4cplus</span><span style="FONT-FAMILY: 宋体">中的配制文件基本与</span><span lang=EN-US>log4j</span><span style="FONT-FAMILY: 宋体">的配置文件一样。</span></p>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">以下面为例</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.rootLogger=INFO, STDOUT, R</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.logger.test=WARN</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.logger.test.log_1=FATAL</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.logger.test.log_2=FATAL</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.logger.test.log_3=WARN</span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.appender.STDOUT=log4cplus::ConsoleAppender</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout</span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n</span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US>log4cplus.rootLogger= INFO, STDOUT, R</span></p>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">其中第一个</span><span lang=EN-US>INFO</span><span style="FONT-FAMILY: 宋体">是等级</span><span lang=EN-US>,</span><span style="FONT-FAMILY: 宋体">从大到小包括</span><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'"><v:shape id=_x0000_i1026 type="#_x0000_t75" alt=""> <v:imagedata o:href="http://www.blogjava.net/Images/OutliningIndicators/None.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.gif"></v:imagedata></v:shape>&lt;!--[if !vml]--&gt;<img height=16 src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.gif" width=11 border=0 v:shapes="_x0000_i1026">&lt;!--[endif]--&gt;<o:p></o:p></span></strong></p>
<p class=MsoNormal><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">OFF</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">FATAL</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">ERROR&nbsp;&nbsp;</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">WARN&nbsp;</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">INFO</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">DEBUG&nbsp;</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">TRACE</span></strong><strong><span style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体">、</span></strong><strong><span lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'arial','sans-serif'">ALL</span></strong></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">后面</span><span lang=EN-US>STDOUT</span><span style="FONT-FAMILY: 宋体">与</span><span lang=EN-US>R</span><span style="FONT-FAMILY: 宋体">都是自定义的</span><span lang=EN-US>appender</span><span style="FONT-FAMILY: 宋体">名称，表示该日志将会输出到哪几个</span><span lang=EN-US>appender</span><span style="FONT-FAMILY: 宋体">中去。</span></p>
<h1><span lang=EN-US>Log4cplus </span><span style="FONT-FAMILY: 宋体">安装</span></h1>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<h1><span lang=EN-US>Log4cplus </span><span style="FONT-FAMILY: 宋体">在中的使用</span></h1>
<pre><span lang=EN-US>&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp; </span>LOG4CPLUS_TRACE</span></pre>
<pre><span lang=EN-US>&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp; </span>LOG4CPLUS_DEBUG<br>
&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp; </span>LOG4CPLUS_INFO<br>
&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp; </span>LOG4CPLUS_WARN<br>
&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp; </span>LOG4CPLUS_ERROR</span></pre>
<pre><span lang=EN-US>&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp; </span>LOG4CPLUS_FATAL</span></pre>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>
<h1><span style="FONT-FAMILY: 宋体">相关资料</span></h1>
<p class=MsoNormal><span lang=EN-US>Log4cplus</span><span style="FONT-FAMILY: 宋体">是从</span><span lang=EN-US>java</span><span style="FONT-FAMILY: 宋体">中的日志</span><span lang=EN-US>log4j</span><span style="FONT-FAMILY: 宋体">那里移植过来的一个日志库。</span></p>
<p class=MsoNormal><span lang=EN-US><a href="http://www.cppblog.com/tx7do/articles/11715.html">http://www.cppblog.com/tx7do/articles/11715.html</a></span></p>
<p class=MsoNormal><span lang=EN-US><a href="http://www.blogjava.net/zJun/archive/2006/06/28/55511.html">http://www.blogjava.net/zJun/archive/2006/06/28/55511.html</a></span></p>
<p class=MsoNormal><span lang=EN-US><a href="http://log4cplus.sourceforge.net/hello_world.html">http://log4cplus.sourceforge.net/hello_world.html</a></span></p>
<p class=MsoNormal><span style="FONT-FAMILY: 宋体">剩余的就在</span><span lang=EN-US> log4cplus </span><span style="FONT-FAMILY: 宋体">的</span><span lang=EN-US> test</span><span style="FONT-FAMILY: 宋体">目录下看看吧。</span></p>
<img src ="http://www.cppblog.com/silekey/aggbug/74077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/silekey/" target="_blank">鹿哥</a> 2009-02-17 21:08 <a href="http://www.cppblog.com/silekey/articles/74077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>