===================类的代码=========================={*******************************************************} { } { CodeMachine } { } { 版权所有 (C) 2004 nil } { } { 2004-6-10 } { } {*******************************************************} { 通常将TTracer的实例存放于application级的Session中,在使用时, 创建一个ITraceInfo,调用TTracer.Write(ITraceInfo)即可, } unit com.sunset.app.tracer; interface uses StrUtils,classes,SysUtils; type //============================================================================== // 接口声明 //============================================================================== //跟踪信息的接口 ITraceInfo = interface function ToString: string; end; //输出目标的接口 IOutput = interface procedure Write(const aInfo: ITraceInfo); //写入跟踪信息 end; //============================================================================== // 跟踪信息类 ,实现 ITraceInfo //============================================================================== //string形式的跟踪记录 TStringTI = class(TInterfacedObject, ITraceInfo) private FData: string; public constructor Create(data: string); function ToString: string; end; //============================================================================== // 跟踪信息输出类,实现 IOutput //============================================================================== TFileLog = class(TInterfacedObject, IOutput) private FLogFile: string; public constructor Create(const FileName: string); procedure Write(const aInfo: ITraceInfo); //写入跟踪信息 end; TProcStr = procedure(const value:string) of Object; TDatabaseLog = class(TInterfacedObject, IOutput) private FWriteProc :TProcStr; public constructor Create(WriteProc: TProcStr); procedure Write(const aInfo: ITraceInfo); //写入跟踪信息 end; //============================================================================== // 跟踪工具 //============================================================================== { TTracer } //用来进行记录跟踪日志的类 TTracer = class(TObject) private FOutput: IOutput; //输出目标 procedure SetOutput(const Value: IOutput); public constructor Create; overload; constructor Create(aOutput: IOutput); overload; destructor Destroy; override; property Output: IOutput read FOutput write SetOutput; procedure Write(const aInfo: ITraceInfo); //写入跟踪信息 end; implementation { TTracer } constructor TTracer.Create; begin end; constructor TTracer.Create(aOutput: IOutput); begin FOutput := aOutput; end; destructor TTracer.Destroy; begin if FOutput <> nil then FOutput := nil; inherited; end; procedure TTracer.SetOutput(const Value: IOutput); begin FOutput := Value; end; procedure TTracer.Write(const
[1] [2] 下一页
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18