实现一个基于xml的log类

原创 2004年10月14日 22:37:00

很多程序都有个log功能,可以把运行时的一些信息存到一个文件中,这样可以在Release的时候查看信息,也可以帮助调试,下面这个类接受一个文件名为参数,可以将信息生成为xml文件,然后借助xsl文件直接可以看到html格式的信息
applog.h

 std CAppLog
 CAppLog fileName LogMessage msgCAppLog writeXMLHead writeXMLEnd    beginXMLRecordofstream os    endXMLRecordofstream os
 string m_sFileName

实现applog.cpp
CAppLogCAppLog fileNamefileNamem_sFileName fileName
  m_sFileName
    writeXMLHead
CAppLogCAppLog
    writeXMLEnd CAppLogLogMessage msg
 ofstream osm_sFileNamec_str ios_baseapp ios_baseoutos
        beginXMLRecordos
  va_list argp
  va_startargp msg szTmp
  vsprintfszTmp msg argp
  va_endargp
  osszTmp
        endXMLRecordos
  osclose CAppLogwriteXMLHead
    string head
    
    ofstream osm_sFileNamec_str ios_baseapp ios_baseoutos
        osheadendl
        osclose CAppLogwriteXMLEnd
    string end
    
    ofstream osm_sFileNamec_str ios_baseapp ios_baseoutos
        osendendl
        osclose CAppLogbeginXMLRecordofstream os
    string msgHead
    
    time_t now
    now timeNULL
    string sTime ctimenow n sTimefindn
        sTimen
    
    string msgTime
    msgTime sTime
    osmsgHeadmsgTime 
    msgTime
    osmsgTime CAppLogendXMLRecordofstream os    
    string msgEnd
    osmsgEnd

使用的时候如下:
CAppLog appLog s n
appLogLogMessage n s


将这个log.xsl文件放在同一目录下
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">

<html>
 <head>
  <title><xsl:value-of select="LogFile/AppName" /> ÈÕÖ¾Îļþ</title>
 </head>
 <body>
  <h1><center><xsl:value-of select="LogFile/AppName" /> ÔËÐÐÈÕÖ¾Îļþ</center></h1>

  <table border="0" cellspacing="1" cellpadding="0">
   <tr>
    <td bgcolor="#dddddd">
     <table border="1" cellpadding="3" cellspacing="1">

      <xsl:for-each select="LogInfo/Message">
       <tr onMouseover="">
        <td bgcolor="#ffffff" valign="top"><xsl:number count="Message" />.</td>
        <td bgcolor="#ffffff" valign="top"><nobr><xsl:value-of select="time" /></nobr><xsl:value-of select="Time" /></td>
        <td bgcolor="#ffffff" valign="top"><xsl:value-of select="content" /></td>
       </tr>
      </xsl:for-each>
     </table>
    </td>
   </tr>
  </table>

 </body>
</html>

</xsl:template>
</xsl:stylesheet>

一个简单实用的log类

自己写一些小代码的时候总是用fprintf来写log,感觉这样不太科学,还是写一个通用的简单带log level的log类,以后就拿来复用吧。这个类实现了非常简单的功能:如果指定了log文件path和...
  • macchan
  • macchan
  • 2014年08月25日 21:43
  • 875

封装php的Log类

记录log,对于很多人而言是很简单或者低级的事情。但是,随着项目经验的增长,遇到生产环境中bug数的增多,至少对于我来说,日志的重要性日益增加。 这次,需要对项目中log类进行重构,主要希望实现4个...
  • wide288
  • wide288
  • 2014年05月07日 19:06
  • 3352

XML练习案例(学生管理系统)

1、以如下格式的exam.xml文件为例xml version="1.0" encoding="UTF-8" standalone="no"?>exam> student idcard="111" e...
  • qq376430645
  • qq376430645
  • 2013年07月31日 21:46
  • 2098

svn log 限制显示条数 以xml形式输出

svn log 是输出svn某路径下的log信息。 进入
  • u010483428
  • u010483428
  • 2014年08月20日 10:37
  • 8158

XML学生管理系统_Java版

整个系统的结构是这个样子的。 总共大概三百行代码,供初学者学习。 张三 上海...
  • chenlou123
  • chenlou123
  • 2017年01月22日 11:54
  • 873

XML的文件解析类————比较常用

 /// /// Author: jiangxiaoqiang /// public class XmlReader {   //=====================...
  • luoyanqing119
  • luoyanqing119
  • 2015年12月11日 16:16
  • 1066

python实现的系统实用log类

每个系统都必不可少会需要一个log类,方便了解系统的运行状况和排错,python本身已经提供了一个logger了,很强大,只要稍微封装一下就可以放到自己的系统了,下面是我自己的log类 文件名:lo...
  • liujian0616
  • liujian0616
  • 2012年09月06日 16:55
  • 525

纷繁的 XML Schema 技术:基于语法的语言 (下)

[转]3. 基于语法的语言 (RELAX NG)We have seen that a schema can be described as a set of rules formalized usi...
  • alexmajy
  • alexmajy
  • 2005年02月18日 02:50
  • 997

黑马程序员_基于XML的学生成绩管理平台

------- android培训、java培训、期待与您交流! ----------  一、需求如下:      二、系统框架如下:  三、代码实现如下: 1、s...
  • simplehaa
  • simplehaa
  • 2015年10月17日 22:43
  • 596

使用MyBatis对表执行CRUD操作——基于XML的实现

只为成功找方法,不为失败找借口! MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作   上一篇博文MyBatis学习总结(一)——MyBatis快速入门中...
  • chajinglong
  • chajinglong
  • 2015年11月25日 10:31
  • 279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现一个基于xml的log类
举报原因:
原因补充:

(最多只允许输入30个字)