记录应用程序的操作日志可以使用数据库、文本文件、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 方法即可。

以上就是使用 XML 文件记录操作日志的内容,更多相关内容请关注PHP中文网(www.php.cn)!

更多相关文章

  1. 创建带有关联的 XML 架构的 XML 文件 && 从 XML 文件创建 XML 架
  2. 将图片读入到Dom中,并将其存为xml文件
  3. 广告控件中xml文件的写法
  4. 将一个图片以二进制值的形式存入Xml文件中
  5. 教你怎么样快速通过XSL转换XML文件
  6. 教你如何快速通过XSL转换XML文件的详解
  7. 教你怎样快速从一个XML文件中查找信息的详细介绍
  8. 详细介绍XML技术上传文件
  9. java读取XML文件的四种方式及比较的代码实例详细介绍

随机推荐

  1. Android中的Window类型
  2. android ONVIF 组播探测在线摄像机
  3. android使用ant编译找不到apkbuilder.jar
  4. android RelativeLayout(相对布局)详细说
  5. Android加载图片导致内存溢出(Out of Memo
  6. Android国际化设置问题
  7. Ubuntu搭建Eclipse+JDK+SDK的Android
  8. vim+ctags+cscope 打造Android源码阅读工
  9. Android事件分发机制源码分析
  10. 【视频课程】Android应用开发典型案例分