=======类的代码=========
{***********************}
{ }
{ 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
//==========================
[next]
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;