使用XML文件记录操作日志

xml

记录应用程序的操作日志可以使用数据库、文本文件、XML文件等。我这里介绍的是使用 XML 文件记录操作日志。
我觉得使用 XML 记录操作日志有如下几点好处:
1. 不占用数据库的空间,可以任意的删除历史操作日志。
2. DataTable 可以方面的读入 XML 文件,DataTable 也可以方便的保存为 XML 文件。
3. 查看日志方便,可以直接打开 XML 文件查看,也可以读入 DataTable,然后通过程序查看。

在 VS2005 中使用 XML 文件记录操作日志方法如下:
1. 建立数据集:JobLogDataSet.xsd
    这里包括:TraceLevel(日志类型)、User(用户)、DateTime(操作时间)、Module(模块)、Function(功能)、Message(消息) 6 个字段。
    不够自己再加吧, 其中 TraceLevel(日志类型) 是指 Info,Warning,Error,Trance,Off。

   

2. 建立日志类型

    /// <summary>
    /// 日志类型
    /// </summary>
    public enum LogType
    {
        /// <summary>
        /// 信息
        /// </summary>
        Info,
        /// <summary>
        /// 警告
        /// </summary>
        Warning,
        /// <summary>
        /// 错误
        /// </summary>
        Error,
        /// <summary>
        /// 跟踪
        /// </summary>
        Trace,
        /// <summary>
        /// 不记录日志
        /// </summary>
        Off
    }
2. 写日志的方法
    /// <summary>
    /// 写日志
    /// </summary>
    /// <param name="traceLevel">日志类型(Info,Warning,Error,Trance,Off)</param>
    /// <param name="user">用户</param>
    /// <param name="module">模块</param>
    /// <param name="function">功能</param>
    /// <param name="message">消息</param>
    public static void WriteLog(LogType logType,string user, string module, string function, string message)
    {
        try
        {
            // 类型为 LogType.Off 的 不记录日志
            if (logType == LogType.Off)
                return;

            JobLogDataSet.JobLogDataTable t = new JobLogDataSet.JobLogDataTable();

            // 每天一个日志文件(.XML 文件),日志的文件名称为:JobLog yyyy-MM-dd.xml
            string jobLogFile = AppDomain.CurrentDomain.BaseDirectory + "JobLog " +
                DateTime.Today.ToString("yyyy-MM-dd") + ".xml";
            if (!File.Exists(jobLogFile))
                t.WriteXml(jobLogFile);

            // 从 .XML 文件中读取日志
            t.ReadXml(jobLogFile);

            // 添加一条日志
            JobLogDataSet.JobLogRow r = t.NewJobLogRow();
            r.TraceLevel = logType.ToString();
            r.User = user;
            r.Datetime = DateTime.Now;
            r.Module = module;
            r.Function = function;
            r.Message = message;
            t.AddJobLogRow(r);

            // 保存到日志到 XML 文件
            t.WriteXml(jobLogFile);
        }
        catch (Exception)
        {}
    }
3. 读日志的方法
    /// <summary>
    /// 读日志
    /// </summary>
    /// <returns>返回读取日志的 DataTable</returns>
    public static JobLogDataSet.JobLogDataTable ReadLog()
    {
        JobLogDataSet.JobLogDataTable jobLogDataTable = new JobLogDataSet.JobLogDataTable();
        try
        {
            // 从应用程序文件夹中,获得所有日志文件 JobLog*.xml
            string[] jobLogFiles = Directory.GetFiles(
                AppDomain.CurrentDomain.BaseDirectory, "JobLog*.xml", SearchOption.TopDirectoryOnly);

            // 把每个日志记录读取到日志 DataTable 中
            foreach (string jobLogFile in jobLogFiles)
            {
                if (File.Exists(jobLogFile))
                {
                    // 读取所有日志文件到临时 DataTable
                    JobLogDataSet.JobLogDataTable t = new JobLogDataSet.JobLogDataTable();
                    t.ReadXml(jobLogFile);
                    // 导入日志记录到主日志 DataTable
                    foreach (JobLogDataSet.JobLogRow r in t)
                        jobLogDataTable.ImportRow(r);
                }
            }
            // 返回读取的日志 DataTable
            return jobLogDataTable;
        }
        catch (Exception)
        {
            return jobLogDataTable;
        }
    }
4. 在需要写日志的地方,直接调用 WriteLog 方法即可。

时间: 2024-11-01 08:28:48

使用XML文件记录操作日志的相关文章

使用 XML 文件记录操作日志

xml 记录应用程序的操作日志可以使用数据库.文本文件.XML文件等.我这里介绍的是使用 XML 文件记录操作日志. 我觉得使用 XML 记录操作日志有如下几点好处: 1. 不占用数据库的空间,可以任意的删除历史操作日志. 2. DataTable 可以方面的读入 XML 文件,DataTable 也可以方便的保存为 XML 文件. 3. 查看日志方便,可以直接打开 XML 文件查看,也可以读入 DataTable,然后通过程序查看. 在 VS2005 中使用 XML 文件记录操作日志方法如下:

实例讲解使用JDOM对XML文件进行操作

本文着重介绍在应用程序中如何使用JDOM对XML文件进行操作,要求读者具有基本的JAVA语言基础. XML由于其可移植性,已经成为应用开发中必不可少的环节.我们经常会把应用程序的一些配置文件(属性文件)写成XML的格式(当然,也可以用property文件而不用XML文件),应用程序通过XML的访问类来对其进行操作.对XML进行操作可以通过若干种方法,如:SAX, DOM, JDOM, JAXP等,JDOM由于其比较简单实用而被开发人员普遍使用. 本文主要分两部分,第一部分介绍如何把XML文件中的

python写xml文件的操作实例_python

本文实例讲述了python写xml文件的操作的方法,分享给大家供大家参考.具体方法如下: 要生成的xml文件格式如下: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </fir

C#XML文件读写操作

/// <summary> /// 描述: /// 加载播放列表 /// </summary> private void LoadPlaylist() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(_strXmlFilePath); // 加载XML文件 XmlNodeList nodeList = xmlDoc.SelectSingleNode("PlayList").SelectNodes(&qu

Asp.Net对Xml文件的操作

最近在用.NET做一个Java软件的接口,其中开发过程中涉及不少对Xml文档的操作,借助微软的MSDN和自己的使用经验,现简单介绍一下ASP.NET中对XML文档的操作.一. XML文档 我们大家都知道,XML是"Extensible Markup Language"的缩写,即可扩展标记语言.它是Internet环境中跨平台的.依赖于内容的技术,是这个时代中处理分布式结构信息的选择工具.在W3C组织领导下的工作小组发展并支持XML技术,使用它来简化通过Internet的文档信息传输.

JAVA对XML文件的操作

问题描述 应工作需要.让我搞多数据源.要求要我在applicationContext中配置多数据源将其中一个先注释. 根据用户的选择去选择释放相应的数据源. 也就是说配置文件中不能同时有两个数据源同时出现 怎么做 譬如:datasourse datasourse;系统在用户登录时默认有一个.这个的当前没有被注释.当用户更改了datasourse的类时,另一个datasourse冒上会注释.这怎么搞(≧▽≦)/ 解决方案 建议换种思路,为什么一定要去修改XML,修改对象不得了?利用spring I

C#对XML操作:编辑XML文件内容

xml 第三章:XML文件记录的编辑使用C#来编辑XML文件,最方便的方法当然还是使用DATASET我们继续使用上一篇中的XML文件,如下: <users> <xs:schema id="users" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"&

utf-8-c# 操作xml文件进行修改 请看下面代码

问题描述 c# 操作xml文件进行修改 请看下面代码 这是一个app.xml文件中的 <?xml version="1.0" encoding="utf-8"?> <appSettings> <appSetting key="张三" value="1" notes="上次读取到的表面位移模块当前月数据表的记录DataID字段值" /> <appSetting key

asp.net XML文件操作实现代码_实用技巧

以前也学过一些这方面的知识,好久都没怎么用了,忘得也差不多,正好现在可以重新巩固一遍,熟悉一下对XML文件的操作. XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言).Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具. 扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标