没落的delphi的日志类log4delphi

来源:互联网 发布:个性化推荐算法 编辑:程序博客网 时间:2024/05/21 18:49

以前用过.net 和C++的日志类log4net log4cpp发现非常好用,性能稳定。

最近修改一个以前的delphi程序,想增加个日志功能。描述程序运行情况。经过简单的查找log4delphi,与上述是相同的开源网站提供的。

安装:
从http://sourceforge.net/projects/log4delphi/files/下载0.8版本,解压到文件夹。打开文件夹"...\log4delphi-0.8",新建一个文件夹"build";编译的时候可能出现个错误提示TFileUnit不存在直接将他删除重新编译即可!

详见:http://blog.csdn.net/brightgems/article/details/814042

下面是整理网上的资料,自己的心得。


使用方法:

1.编译完成后然后安装(打开dpk)

2.创建新项目,在程序运行的开始部分类似代码如下

uses
  ...TConfiguratorUnit...


begin
  Application.Initialize;
  TConfiguratorUnit.doPropertiesConfiguration('log4delphi.properties'); //加载配置文件,注意此文件必须存在否则出现错误
  ...
  Application.Run;
  TLogger.freeInstances; //释放TLogger
end.

//下面是在需要的地方

在uses 添加TLoggerUnit后

var
    logger : TLogger;
begin
    logger := TLogger.getInstance;
    logger.ERROR('error');  //稍后看文件即可看到日志

end;

log4delphi.properties说明(在example文件夹下)

log4delphi.debug=false  #关闭调试模式

log4delphi.rootLogger=DEBUG, fileAppender #设置rootLoger的LEVEL为DEBUG,名字为fileAppender下面能用到或者换句话说只有DEBUG等级以上的才能记录日志

#log4delphi.appender.fileAppender=TFileAppender  //单个文件
log4delphi.appender.fileAppender=TRollingFileAppender  //从代码中得出多个文件保存日志。单个文件的最大尺寸使用MaxFileSize设置,文件个数使用MaxBackupIndex设置。
log4delphi.appender.fileAppender.MaxBackupIndex=10
log4delphi.appender.fileAppender.MaxFileSize=1M
log4delphi.appender.fileAppender.File=app.log //文件名称
log4delphi.appender.fileAppender.AppDir=true //exe所在目录
log4delphi.appender.fileAppender.Append=true //追加方式


#对日志的输出格式的设置

#log4delphi.appender.fileAppender.layout=TSimpleLayout  //此种方式最简单,日志文件中只写入你输出的内容如:logger.DEBUG('ddd'); 日志只记录ddd
#log4delphi.appender.fileAppender.layout=TXMLLayout  //未测试
#log4delphi.appender.fileAppender.layout=THTMLLayout //未测试
#log4delphi.appender.fileAppender.layout.Title=Document Title //未测试
log4delphi.appender.fileAppender.layout=TPatternLayout //相当于自定义,使用Pattern参数来设置日志输出格式
log4delphi.appender.fileAppender.layout.Pattern=%d{yyyy-mm-dd hh:nn:ss:zzz} [%5p] [%L] [%e] %m%n

%d 输出时间 {}中的内容为时间的格式

%5p Level信息

%L Logger的名称例如上面的rootLogger 他输出 ROOT

%e except信息

%m 消息

%n 换行

注意:我翻译的东西可能很烂,只要明白使用的方法即可。对于可能的误导本人改不负责。呵呵


评价没有.net 和 C++版功能强大,可能由于delphi的没落有关!

原创粉丝点击