• C#中的日志类


         这段时间在做路测数据处理,每天都要导入千万条记录至数据库中。因为数据比较庞大,程序处理的指标也很多,厂家给的原始数据也不能保证百分百正确,那么在整个逻辑处理过程中难免会存在不确定性的BUG。为了高效的保证数据的处理,非常有必要将异常信息的现场情景记录下来,为后续分析提供依据,从而快速解决问题。

         日志类本身很简单,就是完成信息的记录功能,其实更重要的是保存哪些有用信息。下面是我参考了下前辈们写的东西修改而来的日志类:

        /// <summary>
        /// 日志类
        /// </summary>
        public class ImportDataLog
        {
            //日志文件所在路径
            private static string logPath = string.Empty;
            /// <summary>
            /// 保存日志的文件夹
            /// </summary>
            public static string LogPath
            {
                get
                {
                    if (logPath == string.Empty)
                    {
                       logPath = AppDomain.CurrentDomain.BaseDirectory;
                    }
                    return logPath;
                }
                set { logPath = value; }
            }
            //日志前缀说明信息
            private static string logFielPrefix = string.Empty;
            /// <summary>
            /// 日志文件前缀
            /// </summary>
            public static string LogFielPrefix
            {
                get { return logFielPrefix; }
                set { logFielPrefix = value; }
            }
            /// <summary>
            /// 写日志
            /// <param name="logType">日志类型</param>
            /// <param name="msg">日志内容</param>
            /// </summary>
            public static void WriteLog(string logType, string msg)
            {
                System.IO.StreamWriter sw=null;
                try
                {

          //同一天同一类日志以追加形式保存
                    sw = System.IO.File.AppendText(
                        LogPath + LogFielPrefix + "_" +
                        DateTime.Now.ToString("yyyyMMdd") + ".Log"
                        );
                    sw.WriteLine(logType + "#" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg);
                }
                catch
                { }
                finally
                {
                    sw.Close();
                }
            }
            /// <summary>
            /// 写日志
            /// </summary>
            public static void WriteLog(LogType logType, string msg)
            {
                WriteLog(logType.ToString(), msg);
            }
        }
        /// <summary>
        /// 日志类型
        /// </summary>
        public enum LogType
        {
            Trace,  //堆栈跟踪信息
            Warning,//警告信息
            Error,  //错误信息应该包含对象名、发生错误点所在的方法名称、具体错误信息
            SQL    //与数据库相关的信息
        }

        在程序中,我是特别关注ERROR类型的信息。如注释所示,将引发错误的对象、方法与具体错误信息保存,对解决问题非常有帮助。

        定义Exception ex=new Exception() ,则:

        建议信息msg组成="Source:{" + ex.Source + "}" +                                                                        
                                               " StackTrace:{" + ex.StackTrace + "}" +
                                               " Message:{" + ex.Message + "}");

    http://u.huoban001.com/space.php
  • 相关阅读:
    Android游戏开发研究与主角在地图滚动
    程序猿学一点金融知识,但是,如果没有提示代码
    Java8的日期和时间的库20经常使用的演示样本
    通用Key-Value存储系统的存储管理策略解析
    车库门开启器
    timesten备份和恢复
    HTML DOCTYPE 重要性
    嵌Ruby 2 《捆绑》
    Jexus web server V5.6.1正式公布
    卓尼斯ZT-180评測
  • 原文地址:https://www.cnblogs.com/zpq521/p/1672752.html
Copyright © 2020-2023  润新知