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 + "}");

    班门弄斧,见笑了。。

===============================

笔者建了一个C#技术交流群,欢迎C#开发人员加入。

qq群号:300930265

===============================

转载于:https://www.cnblogs.com/openPage/archive/2009/11/04/1595835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值