zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    [SSRS] Use Enum values in filter expressions Dynamics 365 Finance and Operation
    Power shell deploy all SSRS report d365 FO
    display method in Dynamics 365 FO
    How To Debug Dynamics 365 Finance and Operation
    Computed columns and virtual fields in data entities Dynamics 365
    Azure DevOps for Power Platform Build Pipeline
    Create readonly entities that expose financial dimensions Dynamics 365
    Dataentity call stack dynamics 365
    Dynamics 365 FO extension
    Use singletenant servertoserver authentication PowerApps
  • 原文地址:https://www.cnblogs.com/zpq521/p/1672752.html
Copyright © 2011-2022 走看看