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


         在写软件中,如果有完整的日志输出,开发者在跟踪问题上就会变得很方便,而且现场问题很多是不会让你直接调试跟踪的,这个时候查询日志恐怕是唯一的手段.日志一般可以分为错误日志,运行状态日志,交互日志(通信日志).其实交互日志也可以看作运行状态日志的一种.编写输出日志的代码往往占用了程序员大量的时间,通常来说日志输出代码会占总代码的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();
            }

    效果如图:

           

  • 相关阅读:
    Task示例,多线程
    request
    do put in ruby
    Ruby零星笔记
    Git的常用操作
    如何在Rails中执行Get/Post/Put请求
    Lua中的基本函数库
    Step By Step(Lua目录)
    position:fixed失效原因
    前端性能监控-window.performance.timing篇
  • 原文地址:https://www.cnblogs.com/legahero/p/log.html
Copyright © 2020-2023  润新知