Verwenden Sie XML-Dateien, um Betriebsprotokolle aufzuzeichnen

黄舟
Freigeben: 2017-02-27 16:27:33
Original
2352 Leute haben es durchsucht

Für die Aufzeichnung von Anwendungsbetriebsprotokollen können Datenbanken, Textdateien, XML-Dateien usw. verwendet werden. Was ich hier vorstelle, ist die Verwendung von XML-Dateien zum Aufzeichnen von Betriebsprotokollen.
Ich denke, die Verwendung von XML zum Aufzeichnen von Betriebsprotokollen hat die folgenden Vorteile:
1. Es belegt keinen Datenbankspeicherplatz und historische Betriebsprotokolle können beliebig gelöscht werden.
2. DataTable kann problemlos XML-Dateien lesen und DataTable kann auch problemlos als XML-Dateien gespeichert werden.
3. Es ist praktisch, das Protokoll anzuzeigen. Sie können die XML-Datei direkt öffnen, um sie anzuzeigen, oder Sie können sie in die DataTable einlesen und sie dann über das Programm anzeigen.

Die Methode zur Verwendung von XML-Dateien zum Aufzeichnen von Betriebsprotokollen in VS2005 ist wie folgt:
1. Erstellen Sie einen Datensatz: JobLogDataSet.xsd
Dies umfasst: TraceLevel (Protokolltyp), Benutzer (Benutzer). ), DateTime (Operationszeit), Modul (Modul), Funktion (Funktion), Nachricht (Nachricht) 6 Felder.
Wenn dies nicht ausreicht, fügen Sie selbst weitere hinzu, wobei sich TraceLevel (Protokolltyp) auf „Info“, „Warnung“, „Fehler“, „Trance“ und „Aus“ bezieht.

2. Protokolltyp erstellen

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

2. Methode zum Schreiben des Protokolls

  /// <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;
Nach dem Login kopieren
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);
Nach dem Login kopieren
// 从 .XML 文件中读取日志
            t.ReadXml(jobLogFile);
Nach dem Login kopieren
  // 添加一条日志
            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);
Nach dem Login kopieren
           // 保存到日志到 XML 文件
            t.WriteXml(jobLogFile);
        }
        catch (Exception)
        {}
    }
Nach dem Login kopieren
3. So lesen Sie Protokolle



  /// <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);
Nach dem Login kopieren
// 把每个日志记录读取到日志 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;
        }
    }
Nach dem Login kopieren
4. Wenn Sie ein Protokoll schreiben müssen, rufen Sie einfach die WriteLog-Methode direkt auf.


Das Obige ist der Inhalt der Verwendung von XML-Dateien zum Aufzeichnen von Betriebsprotokollen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!