FTL中高性能的日志系统(CFFastTrace)

在软件的开发中,往往要用日志(比如 TRACE/ ATLTRACE 等)来跟踪程序的运行,方便查找错误,确认性能等。

但过少的日志不容易定位问题,过多的日志又难以分析,而且一个程序中多个线程的日志又交接在一起,又难于分析,等等诸多问题。

因此,我在FTL中使用了高性能的日志跟踪类 FastTrace,将各个线程的日志输出到单独的目的地(文件)中,查看时再使用专门的工具进行查看,并且可以按照日志等级、所在线程、关键字 等进行过滤,并支持任意顺序的排序。 而且,通过其中的 ElapseTime 项,可以快速地从宏观角度定位出程序的性能瓶颈。


特点:

  1. 使用方便,只需简单的 #include "ftlbase.h" 后,即可使用 FTLTRACE / FTLTRACEEX 宏进行日志的输出,输出格式同 TRACE

  2. 输出可控。可通过 FAST_TRACE_OPTIONS 结构控制日志输出, 常用的有 bWriteToFile(控制是否生成文件,默认为FALSE,表示只在Output窗口输出), traceThreshold(控制输出等级,默认输出等级为 tlTrace, 由下到上依次为 tlDetail、tlInfo、tlTrace、tlWarning、tlError, 大于 traceThreshold 的日志才会输出);

  3.具有多种控制接口。 程序具有默认设置,可通过注册表(HKEY_CURRENT_USER\Software\FTL\<AppExeName> ) 更改, 最后可通过 CFFastTrace::SetTraceOptions 设置选项。以上的各种设置方式,后面的具有更高优先级,会覆盖之前的设置。

  4.有方便的实用工具LogViewer来显示日志(日后介绍)

猜你喜欢

转载自blog.csdn.net/fishjam/article/details/7322644