Home Backend Development XML/RSS Tutorial Use XML files to record operation logs

Use XML files to record operation logs

Feb 27, 2017 pm 04:27 PM

Recording application operation logs can use databases, text files, xml files, etc. What I introduce here is the use of XML files to record operation logs.
I think using XML to record operation logs has the following advantages:
1. It does not occupy database space, and historical operation logs can be deleted arbitrarily.
2. DataTable can easily read XML files, and DataTable can also be easily saved as XML files.
3. It is convenient to view the log. You can directly open the XML file to view it, or you can read it into the DataTable and then view it through the program.

The method of using XML files to record operation logs in VS2005 is as follows:
1. Create a data set: JobLogDataSet.xsd
This includes: TraceLevel (log type), User (user), DateTime (operation Time), Module (module), Function (function), Message (message) 6 fields.
If it’s not enough, add more by yourself, where TraceLevel (log type) refers to Info, Warning, Error, Trance, Off.

2. Create a log type

/// <summary>
    /// 日志类型
    /// </summary>
    public enum LogType 
    { 
        /// <summary>
        /// 信息
        /// </summary>
        Info, 
        /// <summary>
        /// 警告
        /// </summary>
        Warning,
        /// <summary>
        /// 错误
        /// </summary>
        Error, 
        /// <summary>
        /// 跟踪
        /// </summary>
        Trace, 
        /// <summary>
        /// 不记录日志
        /// </summary>
        Off 
    }
Copy after login

2. How to write a log

  /// <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;
Copy after login

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);
Copy after login
// 从 .XML 文件中读取日志
            t.ReadXml(jobLogFile);
Copy after login
  // 添加一条日志
            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);
Copy after login
           // 保存到日志到 XML 文件
            t.WriteXml(jobLogFile);
        }
        catch (Exception)
        {}
    }
Copy after login

3. How to read the log

  /// <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);
Copy after login
// 把每个日志记录读取到日志 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;
        }
    }
Copy after login

4. Where you need to write a log, just call the WriteLog method directly.

The above is the content of using XML files to record operation logs. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Can I open an XML file using PowerPoint? Can I open an XML file using PowerPoint? Feb 19, 2024 pm 09:06 PM

Can I open an XML file using PowerPoint?

Filtering and sorting XML data using Python Filtering and sorting XML data using Python Aug 07, 2023 pm 04:17 PM

Filtering and sorting XML data using Python

Convert XML data to CSV format in Python Convert XML data to CSV format in Python Aug 11, 2023 pm 07:41 PM

Convert XML data to CSV format in Python

Python implements conversion between XML and JSON Python implements conversion between XML and JSON Aug 07, 2023 pm 07:10 PM

Python implements conversion between XML and JSON

Using Python to merge and deduplicate XML data Using Python to merge and deduplicate XML data Aug 07, 2023 am 11:33 AM

Using Python to merge and deduplicate XML data

Handling errors and exceptions in XML using Python Handling errors and exceptions in XML using Python Aug 08, 2023 pm 12:25 PM

Handling errors and exceptions in XML using Python

Import XML data into database using PHP Import XML data into database using PHP Aug 07, 2023 am 09:58 AM

Import XML data into database using PHP

Use PHP and XML to process and display geolocation and map data Use PHP and XML to process and display geolocation and map data Aug 01, 2023 am 08:37 AM

Use PHP and XML to process and display geolocation and map data

See all articles