﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>学习日记 &#187; log</title>
	<atom:link href="https://www.softwareace.cn/?feed=rss2&#038;tag=log" rel="self" type="application/rss+xml" />
	<link>https://www.softwareace.cn</link>
	<description>时刻想着为自己的产品多做一些对他好的事情</description>
	<lastBuildDate>Fri, 20 Mar 2026 06:58:28 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>log4qt</title>
		<link>https://www.softwareace.cn/?p=49</link>
		<comments>https://www.softwareace.cn/?p=49#comments</comments>
		<pubDate>Wed, 16 Jan 2013 07:40:26 +0000</pubDate>
		<dc:creator><![CDATA[littlesu]]></dc:creator>
				<category><![CDATA[开发经验]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://192.168.0.106/?p=49</guid>
		<description><![CDATA[http://blog.csdn.net/dbzhang800/article/details/6916948 [&#8230;]]]></description>
				<content:encoded><![CDATA[<div>
	<a href="http://blog.csdn.net/dbzhang800/article/details/6916948" style="font-family: Tahoma;text-align: -webkit-auto">http://blog.csdn.net/dbzhang800/article/details/6916948</a></p>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		<a href="http://blog.csdn.net/dbzhang800/article/details/6917462">http://blog.csdn.net/dbzhang800/article/details/6917462</a></div>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		<a href="http://baike.baidu.com/view/25347.htm">http://baike.baidu.com/view/25347.htm</a></div>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		<a href="http://slowly.ycool.com/post.3161546.html">http://slowly.ycool.com/post.3161546.html</a></div>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		<a href="http://blog.sina.com.cn/s/blog_659defdb0100wbz2.html">http://blog.sina.com.cn/s/blog_659defdb0100wbz2.html</a></div>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		<a href="http://kdboy.iteye.com/blog/208851">http://kdboy.iteye.com/blog/208851</a></div>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		<a href="http://blog.sina.com.cn/s/blog_659defdb0100wbyw.html">http://blog.sina.com.cn/s/blog_659defdb0100wbyw.html</a></div>
<div style="font-family: Tahoma;text-align: -webkit-auto">
		&nbsp;</div>
<p>	<span style="font-family: Tahoma">&nbsp;Log4Qt::Logger * log = Log4Qt::Logger::rootLogger();</span><br style="font-family: Tahoma;text-align: -webkit-auto" /><br />
	<span style="font-family: Tahoma">&nbsp;log-&gt;debug(&quot;Hello DbZhang800!&quot;);</span><br style="font-family: Tahoma;text-align: -webkit-auto" /><br />
	<span style="font-family: Tahoma">log-&gt;info(&quot;Hello Qt!&quot;);</span><br style="font-family: Tahoma;text-align: -webkit-auto" /><br />
	<span style="font-family: Tahoma">log-&gt;warn(&quot;Hello 1+1=2&quot;);</span><br style="font-family: Tahoma;text-align: -webkit-auto" /><br />
	<span style="font-family: Tahoma">log-&gt;debug(&quot;Hello DbZhang800!&quot;);</span></p>
<div align="left" style="font-family: Tahoma">
<hr />
	</div>
<div align="left" style="font-family: Tahoma">
		int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + &quot;/log4qt.conf&quot;); Log4Qt::LogManager::setHandleQtMessages(true); //Object obj; qDebug(&quot;123123123&quot;); qDebug(&quot;sdasdasda&quot;); return a.exec(); }</div>
<div align="left" style="font-family: Tahoma">
<hr />
<div>
			log4qt.conf</div>
</p></div>
<div align="left" style="font-family: Tahoma">
		QSettings s;<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.beginGroup(&quot;Log4Qt&quot;);<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.beginGroup(&quot;Properties&quot;);<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.setValue(&quot;log4j.appender.A1&quot;, &quot;org.apache.log4j.FileAppender&quot;);<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.setValue(&quot;log4j.appender.A1.file&quot;, &quot;F:/bin/myapp.log&quot;);<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.setValue(&quot;log4j.appender.A1.layout&quot;, &quot;org.apache.log4j.TTCCLayout&quot;);<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.setValue(&quot;log4j.appender.A1.layout.DateFormat&quot;, &quot;ISO8601&quot;);<br />
		&nbsp;&nbsp;&nbsp;&nbsp; s.setValue(&quot;log4j.rootLogger&quot;, &quot;TRACE, A1&quot;);</div>
<div align="left" style="font-family: Tahoma">
<hr />
		log4j.rootLogger=DEBUG,A1<br />
		log4j.appender.A1=org.apache.log4j.ConsoleAppender<br />
		log4j.appender.A1.layout=org.apache.log4j.PatternLayout<br />
		log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n</div>
<div align="left" style="font-family: Tahoma">
		&nbsp;</div>
<div align="left" style="font-family: Tahoma">
<hr />
		<pre class="crayon-plain-tag">log4j.rootLogger = INFO, consoleAppender
log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss}] %-5p - %m%n

log4j.category.startPrice =info,startPrice
log4j.appender.startPrice =org.apache.log4j.DailyRollingFileAppender
log4j.appender.startPrice.File=/root/liangshunan/log/resviceStartPrice.log
log4j.appender.startPrice.DatePattern=&amp;#039;.&amp;#039;yyyy-MM-dd
log4j.appender.startPrice.layout=org.apache.log4j.PatternLayout  
log4j.appender.startPrice.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss}] %-5p - %m%n</pre>
	</div>
<div align="left" style="font-family: Tahoma">
<div align="left">
			<font color="#0000FF" face="新宋体" size="1"><span style="font-size: 9pt">#include</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&quot;./log4qt/logger.h&quot;</span></font></div>
<div align="left">
			<font color="#0000FF" face="新宋体" size="1"><span style="font-size: 9pt">#include</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&quot;./log4qt/propertyconfigurator.h&quot;</span></font></div>
<div align="left">
			<font color="#0000FF" face="新宋体" size="1"><span style="font-size: 9pt">#include</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&quot;./log4qt/logmanager.h&quot;</span></font></div>
<div align="left">
<div align="left">
				<font face="新宋体" size="1"><span style="font-size: 9pt">Log4Qt</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">::</span></font><font face="新宋体" size="1"><span style="font-size: 9pt">PropertyConfigurator</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">::</span></font><font face="新宋体" size="1"><span style="font-size: 9pt">configure</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">(</span></font>&nbsp;<font face="新宋体" size="1"><span style="font-size: 9pt">a</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">.</span></font><font face="新宋体" size="1"><span style="font-size: 9pt">applicationDirPath</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">() + &quot;/log4qt.conf&quot;);</span></font></div>
<div align="left">
				<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></font>&nbsp;<font face="新宋体" size="1"><span style="font-size: 9pt">Log4Qt</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">::</span></font><font face="新宋体" size="1"><span style="font-size: 9pt">LogManager</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">::</span></font><font face="新宋体" size="1"><span style="font-size: 9pt">setHandleQtMessages</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">(</span></font>&nbsp;<font color="#0000FF" face="新宋体" size="1"><span style="font-size: 9pt">true</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">);</span></font></div>
<div align="left">
				<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></font>&nbsp;<font color="#008000" face="新宋体" size="1"><span style="font-size: 9pt">//Object obj;</span></font></div>
<div align="left">
				<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></font>&nbsp;<font face="新宋体" size="1"><span style="font-size: 9pt">qDebug</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">(&quot;1231DDFDDF23123&quot;);</span></font></div>
<div align="left">
				<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></font>&nbsp;<font face="新宋体" size="1"><span style="font-size: 9pt">qDebug</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">(&quot;sdasdasda&quot;);</span></font></div>
<div align="left">
				<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></font>&nbsp;<font color="#0000FF" face="新宋体" size="1"><span style="font-size: 9pt">return</span></font>&nbsp;<font face="新宋体" size="1"><span style="font-size: 9pt">a</span></font>&nbsp;<font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">.</span></font><font face="新宋体" size="1"><span style="font-size: 9pt">exec</span></font><font color="#010101" face="新宋体" size="1"><span style="font-size: 9pt">();</span></font></div>
<div align="left">
				&nbsp;</div>
</p></div>
</p></div>
<div align="left" style="font-family: Tahoma">
		<a>//防止</a>&nbsp;继续写入 &nbsp;不覆盖</div>
<div align="left" style="font-family: Tahoma">
		<font face="Arial">log4j.appender.R.AppendFile=true //==</font><span style="font-family: Arial">FileAppender::setAppendFile(true)</span></div>
<div align="left" style="font-family: Tahoma">
		&nbsp;</div>
<div align="left" style="font-family: Tahoma">
		&nbsp;</div>
<div align="left" style="font-family: Tahoma">
		&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</div>
<div align="left" style="font-family: Tahoma">
		log4j.rootLogger=DEBUG,A1<br />
		log4j.appender.A1=org.apache.log4j.&nbsp;DailyRollingFileAppender<br />
		log4j.appender.A1.File=d:/logs/log<br />
		log4j.appender.A1.AppendFile=true<br />
		log4j.appender.A1.layout=org.apache.log4j.PatternLayout<br />
		log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %l: %m%n</div>
<div align="left" style="font-family: Tahoma">
		&nbsp;</div>
<div align="left" style="font-family: Tahoma">
		<a href="http://sourceforge.net/projects/log4qt" target="_blank">log4qt</a>是Apache Log4j项目用于Qt框架的C++移植版本。单一开发者，年初发布0.2版本。<br />
		和其他系log4*不同，log4qt默认静态编译进目标程序。<br />
		<strong>使用：</strong><br />
		1. 解压log4qt到目标文件夹，如D:Qt下；<br />
		2. qt项目的pro文件中加入一行：include(D:Qtlog4qtsrclog4qtlog4qt.pri)，<br />
		&nbsp;&nbsp;&nbsp; pri文件会将需要的h文件和cpp文件加入到qt项目中；<br />
		3. eclipse项目的属性-C/C++ Include Paths and Symbols中增加D:Qtlog4qtsrc;<br />
		4. main.cpp中包含头文件include &quot;log4qt/propertyconfigurator.h&quot;,<br />
		&nbsp;&nbsp;&nbsp; 增加一行：Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + &quot;/log4j.properties&quot;);<br />
		&nbsp;&nbsp;&nbsp; log4j.properties符合log4j的配置文件的风格；<br />
		5. 需要记录日志的文件，头文件中包含头文件#include &quot;log4qt/logger.h&quot;，<br />
		&nbsp;&nbsp;&nbsp; 在Q_OBJECT之后加入一行，LOG4QT_DECLARE_QCLASS_LOGGER，这样就可以使用logger()-&gt;error(&quot;what?&quot;)记录日志了；</p>
<p>
			<strong>疑问：</strong><br />
			1. 怎样让日志文件以Append的方式写入？<br />
			2. 怎样以stream的方式（使用&lt;&lt;操作符）写日志？</p>
<p>			<strong>更新：</strong><br />
			2009-05-16<br />
			1. FileAppender有个属性叫appendFile，为true时以<font face="Arial">Append方式打开文件，为false时以Truncate方式打开文件，默认为false。可以调用FileAppender::setAppendFile(true)，或者在配置文件中加一行<font face="Arial">log4j.appender.R.AppendFile=true。<br />
			RollingFileAppender是FileAppender的子类</font></font></p>
</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=49</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>qt 设置日志</title>
		<link>https://www.softwareace.cn/?p=60</link>
		<comments>https://www.softwareace.cn/?p=60#comments</comments>
		<pubDate>Tue, 15 Jan 2013 10:11:00 +0000</pubDate>
		<dc:creator><![CDATA[littlesu]]></dc:creator>
				<category><![CDATA[开发经验]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://192.168.0.106/?p=60</guid>
		<description><![CDATA[[crayon-69e1b6c693b66898359704/]]]></description>
				<content:encoded><![CDATA[<p></p><pre class="crayon-plain-tag">#include &amp;lt;QtCore/QCoreApplication&amp;gt;
#include &amp;lt;QtDebug&amp;gt;  
#include &amp;lt;QFile&amp;gt;  
#include &amp;lt;QTextStream&amp;gt;  

void customMessageHandler(QtMsgType type, const char *msg)  
{  
	QString txt;  
	switch (type) {  
		//调试信息提示  
		case QtDebugMsg:  
			txt = QString(&amp;quot;Debug: %1&amp;quot;).arg(msg);  
			break;  

			//一般的warning提示  
		case QtWarningMsg:  
			txt = QString(&amp;quot;Warning: %1&amp;quot;).arg(msg);  
			break;  
			//严重错误提示  
		case QtCriticalMsg:  
			txt = QString(&amp;quot;Critical: %1&amp;quot;).arg(msg);  
			break;  
			//致命错误提示  
		case QtFatalMsg:  
			txt = QString(&amp;quot;Fatal: %1&amp;quot;).arg(msg);  
			abort();  
	}  

	QFile outFile(&amp;quot;debuglog.txt&amp;quot;);  
	outFile.open(QIODevice::WriteOnly | QIODevice::Append);  
	QTextStream ts(&amp;amp;outFile);  
	ts &amp;lt;&amp;lt; txt &amp;lt;&amp;lt; endl;  
}  

int main( int argc, char * argv[] )  
{  
	QCoreApplication app( argc, argv );  

	//先注册自己的MsgHandler  
	qInstallMsgHandler(customMessageHandler);          

	//以后就可以像下面这样直接打日志到文件中，而且日志也会包含时间信息  
	qDebug(&amp;quot;This is a debug message at thisisqt.com&amp;quot;);  
	qWarning(&amp;quot;This is a warning message  at thisisqt.com&amp;quot;);  
	qCritical(&amp;quot;This is a critical message  at thisisqt.com&amp;quot;);  
	qFatal(&amp;quot;This is a fatal message at thisisqt.com&amp;quot;);  

	return app.exec();  
}</pre><p></p>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=60</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
