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; |