对于程序执行期间的错误跟踪!相信大家都有自己的一套办法!!!但都是利用文件文件,我这次利用的是XML&XSL,可产生报表格式的日志,轻松生成报表!!!
我参考了Emilio Guijarro Cameros的CXMLProfile写XML配置文件的思想!!!利用XML 接口IXMLDOMDocument 、IXMLDOMNode 、IXMLDOMElement和 MFC相结合,写成了一个CXMLLogfile类,只暴露了两个公共方法
void Log(LPCTSTR lpszFilName,LPCTSTR s,...);
bool ClearAll()
Log是添加一条日志,ClearAll是清除所有日志!!!当大家需要查看日值时,只需要打开相应的XML文件Log.XML就可以看到一个日志表格了,为此我专门写了一个XSL样式文件(XML样式XSL文件必须在XML文件同一目录下)!
XSL样式文件代码:
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="">
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="LogFile/AppName" /> 日志文件</title>
</head>
<body>
<h1><xsl:value-of select="LogFile/AppName" /> 运行日志文件</h1>
<table border="0" cellspacing="1" cellpadding="0">
<tr>
<td bgcolor="#dddddd">
<table border="0" cellpadding="3" cellspacing="1">
<tr>
<td bgcolor="#ffffff"> </td>
<td width="140" valign="center" bgcolor="#ffffff"><b>日期-时间</b></td>
<td bgcolor="#ffffff"><b>错误信息</b></td>
<td bgcolor="#ffffff"><b>具体位置信息</b></td>
</tr>
<xsl:for-each select="LogFile/LogItem">
<tr onMouseover="">
<td bgcolor="#ffffff" valign="top"><xsl:number count="LogItem" />.</td>
<td bgcolor="#ffffff" valign="top"><nobr><xsl:value-of select="Date" /></nobr><xsl:value-of select="Time" /></td>
<td bgcolor="#ffffff" valign="top"><xsl:value-of select="comment" /></td>
<td bgcolor="#ffffff" valign="top"><xsl:value-of select="Filename" /></td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</table>
<font style="font-size:5.0mm;"><br/>Log.xsl by force eagle <<a href="