java中有一個log4j的日誌管理包,可以很方便的實現對日誌的管理。
在delphi平臺,作者沒有發現類似的實現,不過delphi中要實現類似的功能比較簡單,封裝下日誌相關的邏輯規則即可。
與日誌管理相關的有如下幾點:
1.日誌文件存放路徑
2.日誌文件名稱
3.日誌類型管理
4.日誌的可捕捉類型配置
5.寫日誌
6.調用接口
關於日誌文件名稱、存放路徑以及日誌捕捉類型可以做配置項,放入配置文件中。
日誌類型可以分爲:信息類型、調試類型、警告信息類型、錯誤信息類型
日誌類的實現代碼如下
TLogType = (lgtpInfo, lgtpDebug, lgtpWarning, lgtpError);
TLogTypes = set of TLogTypes;
TLogger = class
private
FLogFileName: string; //日誌文件名稱
FLogTypes: TLogTypes; //可以寫入日誌文件的日誌類型
public
constructor Create(pLogFileName: string; pLogTypes: TLogTypes);
procedure Log(logContent: string; logType: TLogType);
end;
可以考慮實現一個Factory類來實現日誌文件的配置信息讀取,以及日誌文件名稱自動產生之類的規則,或者在TLogger裏定義一個類方法來完成類似工廠類的功能。如果考慮到可能改變保存日誌的方式,比如要保存到數據庫中,那麼就需要將TLogger作爲抽象類,然後提供具體的實現類,這種實現方式就與設計二中的配置文件類的實現相同了。
我在efinfo-framework框架中提供了一個text類型的實現。