好久没有上来,发布几个日志类

     在写软件中,如果有完整的日志输出,开发者在跟踪问题上就会变得很方便,而且现场问题很多是不会让你直接调试跟踪的,这个时候查询日志恐怕是唯一的手段.日志一般可以分为错误日志,运行状态日志,交互日志(通信日志).其实交互日志也可以看作运行状态日志的一种.编写输出日志的代码往往占用了程序员大量的时间,通常来说日志输出代码会占总代码的1%到3%左右(个人经验,当然有些牛人的程序是不需要日志的).

     在SysLog中对日志有严格的程度分级,一共有7级(emergency,alert,critical,error,warning,notice,info,debug),参考SysLog的程度分级,你也可以规划你的日志分级.

     日志的呈现也有多种:日志文件,界面呈现,windows事件输出,写数据库.

     考虑这些种种因素,编写组织一个好的日志类或架构并不容易.

     今天我公布我的几个日志类,以供大家参考:

日志类MixFunc.rar

该文件提供了CFileLogger文件输出,CListViewLogger界面输出(ListView显示),CLogMgr(提供单一示例,同时文件输出和界面输出)

初始化:

            CLogMgr.G_Instance.AppOutputLevel = MixFunc.LogSeverity.info;
            CLogMgr.G_Instance.ErrorOutputLevel = MixFunc.LogSeverity.warning;

            CLogMgr.G_Instance.AppLogView = lvApplog;
            CLogMgr.G_Instance.ErrorLogView = lvError;

日志输出:        例1:

               try
                {
                    //你的代码

                }
                catch (Exception ex)
                {
                    CLogMgr.G_Instance.WriteErrorLog(MixFunc.LogSeverity.error, "数据库连接设置", ex.Message + ":" + ex.StackTrace);
                }

            例2:

            public void OnError(string ExtraMsg, Exception Ex)
          {
            CLogMgr.G_Instance.WriteErrorLog(LogSeverity.error, ExtraMsg, Ex);
          }

          例3:

           CLogMgr.G_Instance.WriteAppLog(MixFunc.LogSeverity.info, "消息服务", "服务启动成功!");

日志显示:

         //需要定时器,定时调用

        private void tmRefresh_Tick(object sender, EventArgs e)
        {
            CLogMgr.G_Instance.DisplayUILog();
        }

效果如图:

       

原文地址:https://www.cnblogs.com/legahero/p/log.html