zoukankan      html  css  js  c++  java
  • kbmMWLog同时输出日志到多个日志管理器

    kbmMWLog日志框架,针对不同的业务情况,提供了多种日志管理器:

    • TkbmMWStreamLogManager
    • TkbmMWLocalFileLogManager
    • TkbmMWSystemLogManager
    • TkbmMWStringsLogManager
    • TkbmMWProxyLogManager
    • TkbmMWTeeLogManager
    • TkbmMWNullLogManager

    这些日志管理器,针对不同的日志输出对象而实现,比如将日志输出到文件、TStrings,Stream、系统控制台等。

     那如果想同时输出日志到多种对象怎么办呢?例如:想用文件记录日志的同时,也想输出到系统控制台以及界面上的Memo控件,在调试时能直接看到日志内容。非常幸运,作者已经为我们考虑到并完美实现,那就是用上面日志管理器TkbmMWTeeLogManager。直接看代码:

    procedure TForm1.Button5Click(Sender: TObject);
    var
       filelogmgr:IkbmMWLocalFileLogManager;
       systemlogmgr:IkbmMWSystemLogManager;
       teelogmgr:IkbmMWTeeLogManager;
    stringslogmgr:TkbmMWStringsLogManager;
    begin // 准备三个日志管理器 (系统及本地文件及Strings) // 然后定义一个tee日志管理器,并将系统及本地文件日志管理器传给tee日志管理器 filelogmgr:=TkbmMWLocalFileLogManager.Create('.log.txt','.audit.txt'); filelogmgr.FileOptions:=[mwlfoDeleteOldLog,mwlfoDeleteOldAudit]; systemlogmgr:=TkbmMWSystemLogManager.Create;
    //用Memo显示日志 stringslogmgr:=TkbmMWStringsLogManager.Create(Memo1.Lines);
    //定义一个tee日志管理器,让日志信息传递给另外两个日志管理器 teelogmgr:=TkbmMWTeeLogManager.Create(filelogmgr,systemlogmgr,stringslogmgr); Log.LogManager:=teelogmgr;

    //忽略指定的异常,不记录到日志
    Log.LogManager.IgnoreException(EMyException);
    end;

    这是从作者提供的Demo中拿来并进一步完善的代码,先建立文件日志管理器filelogmrg,系统日志管理器systemlogmgr,然后再建一个teelogmgr,将filelogmrg,systemlogmgr作为tee日志管理器的Create方法的参数,同时传给teelogmgr对象,最后将teelogmgr设置为全局对象Log的管理器。我做了补充,让日志同时显示到Memo控件上,因为又加了StringsLogManager管理器。

    现在日志就同时输出到文件及系统及控件Memo这三个日志管理器对象中去了。可以分别对这三个日志管理器做进一步的设置,例如,在文件日志中记录所有类型的日志,而在Memo中只显示Debug,Error,Fatal类型的日志,用下面代码设置:

    stringslogmgr.LogTypeFilter:=[mwltDebug,{mwltInfo,mwltWarning,}mwltError,mwltFatal{,mwltAudit}];
  • 相关阅读:
    .Net下的MSMQ(微软消息队列)的同步异步调用
    [收藏]JS获取网页中HTML元素的几种方法分析
    在FireFox下设为首页的解决方法
    如何创建和使用Web Service代理类
    [收藏]61条面向对象设计的经验原则
    [总结]DotNet中用到的加密算法总结
    如何把用SQL语句int型整数转换成二进制数
    彻底杜绝PHP的session,cookie,Cannot modify header错误
    MSN总是报80048820的错误,网上搜的一些资料解决不了,我找到了真正解决办法!
    [收藏]MD5加密的javascript实现
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/9216646.html
Copyright © 2011-2022 走看看