Maison > développement back-end > Tutoriel XML/RSS > Utiliser des fichiers XML pour enregistrer les journaux d'opérations

Utiliser des fichiers XML pour enregistrer les journaux d'opérations

黄舟
Libérer: 2017-02-27 16:27:33
original
2474 Les gens l'ont consulté

L'enregistrement des journaux d'opérations d'application peut utiliser des bases de données, des fichiers texte, des fichiers XML, etc. Ce que je présente ici, c'est l'utilisation de fichiers XML pour enregistrer les journaux d'opérations.
Je pense que l'utilisation de XML pour enregistrer les journaux d'opérations présente les avantages suivants :
1. Il n'occupe pas d'espace dans la base de données et les journaux d'opérations historiques peuvent être supprimés arbitrairement.
2. DataTable peut facilement lire les fichiers XML, et DataTable peut également être facilement enregistré sous forme de fichiers XML.
3. Il est pratique de visualiser le journal. Vous pouvez ouvrir directement le fichier XML pour le visualiser, ou vous pouvez le lire dans le DataTable puis le visualiser via le programme.

La méthode d'utilisation des fichiers XML pour enregistrer les journaux d'opérations dans VS2005 est la suivante :
1. Créez un ensemble de données : JobLogDataSet.xsd
Cela inclut : TraceLevel (type de journal), User (utilisateur ), DateTime (heure de l'opération), Module (module), Fonction (fonction), Message (message) 6 champs.
Si cela ne suffit pas, ajoutez-en davantage par vous-même, où TraceLevel (type de journal) fait référence à Info, Warning, Error, Trance, Off.

2. Créer un type de journal

/// <summary>
    /// 日志类型
    /// </summary>
    public enum LogType 
    { 
        /// <summary>
        /// 信息
        /// </summary>
        Info, 
        /// <summary>
        /// 警告
        /// </summary>
        Warning,
        /// <summary>
        /// 错误
        /// </summary>
        Error, 
        /// <summary>
        /// 跟踪
        /// </summary>
        Trace, 
        /// <summary>
        /// 不记录日志
        /// </summary>
        Off 
    }
Copier après la connexion

2. Méthode d'écriture du journal

  /// <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;
Copier après la connexion

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

3 Comment lire les journaux

  /// <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);
Copier après la connexion
// 把每个日志记录读取到日志 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;
        }
    }
Copier après la connexion

4. Chaque fois que vous avez besoin d'écrire un journal, appelez simplement la méthode WriteLog.

Ce qui précède est le contenu de l'utilisation de fichiers XML pour enregistrer les journaux d'opérations. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal