简单的开源日志Log4D delphi 6---delphi xe 10全可用

简单的开源日志Log4D delphi 6—delphi xe 10全可用

一、前言

网上看Log4Cpp等使用很麻烦, 10秒内看不懂我就没有耐心了。想起Delphi是最简单的编程工具,于是就Log4Delphi啦!

二、下载安装

1.下载 https://sourceforge.net/projects/log4delphi/files/

简单的开源日志Log4D delphi 6---delphi xe 10全可用_第1张图片

2. 安装:加入lib查找路径

下载后解压到,打开源码路径: \log4delphi-0.8\src\delphi
简单的开源日志Log4D delphi 6---delphi xe 10全可用_第2张图片
发现控件包散发出浓郁的陈酒香, 最高只支持最经典的Delphi7(Delphi8开始就被产品经理带歪了,居然使用.net做底层库,就像把高贵的宫殿建立在松软的垃圾堆上,默哀1分钟…)。
还好,Delphi和C语言一样上得厅堂性下得厨房,不必安装控件包,有查找路径,uses过来(像C的 #include)就行。如下图添加2个路径:
log4delphi-0.8\src\delphi\util
log4delphi-0.8\src\delphi

简单的开源日志Log4D delphi 6---delphi xe 10全可用_第3张图片

三、配置和使用

1. 加载配置和释放内存

在工程文件(相当于C语言的main文件)的源码中uses单元TConfiguratorUnit, TLoggerUnit
再在Application.Initialize;的后面调用doPropertiesConfiguration(‘log4delphi.properties’); 去读取配置并初始化log4d。
最后Application结束后,释放堆内存:
TLogger.freeInstances;
简单的开源日志Log4D delphi 6---delphi xe 10全可用_第4张图片

2. 编译测试

如果你的工程不是基于VCL,而是FireMonkey的,编译会有点小问题,需要修改如下:

   在 TPropertyConfiguratorUnit.pas 和 TConfiguratorUnit中
   (1). 源码中uses 了 Forms的地方,都要替换为FMX.Forms
   (2). 源码中有ExtractFileDir(Application.ExeName)的地方,都要替换为GetCurrentDir()

幸好不多,只有3个地方。

3. 配置文件

将\log4delphi-0.8\example目录下的log4delphi.properties放入应用程序同一目录下。

4. 调用log4d

在需要Log的代码头部先
uses TLoggerUnit;
然后在你需要的地方写Log信息
根据Level的类型,有五种优先级别的Log信息

   TLogger.getInstance.debug('Debug message');
   TLogger.getInstance.info('Info message');
   TLogger.getInstance.warn('Warn message');
   TLogger.getInstance.error('Error message');
   TLogger.getInstance.fatal('Fatal message');

下图是我的简单测试
简单的开源日志Log4D delphi 6---delphi xe 10全可用_第5张图片
编译运行后程序所在的目录下有个app.log文件, 显然记录了刚才我点击五类按键的情况。
简单的开源日志Log4D delphi 6---delphi xe 10全可用_第6张图片

四、实时查看Log

有时候需要实时查看Log记录,怎么办,Linux下的tail命令能很好地跟踪,windows则只能移花接木啦!
windows下执行Linux命令需要下载一个工具cygwin或者git bash
下载后直接安装并运行得到一个黑窗口:
用命令 cd 进入你app.log所在的目录如d盘test/xxx目录下:
cd d:/test/xxxxx
然后用tail命令实时跟踪:
tail -f app.log
简单的开源日志Log4D delphi 6---delphi xe 10全可用_第7张图片
如上图就可看到app.log不断地实时变化

五、深入配置文件

前面的探索只是能简单工作起来,高级用户还需自己配置log4delphi.properties文件。
比如改默认的单个文件为多个文件,适用于大量日志记录:

  #log4delphi.appender.fileAppender=TFileAppender  //只记录单个日志文件
log4delphi.appender.fileAppender=TRollingFileAppender  //一个不够就生成多个文件保存, 单个文件的最大尺寸使用MaxFileSize设置,文件个数使用MaxBackupIndex设置。
log4delphi.appender.fileAppender.MaxBackupIndex=10
log4delphi.appender.fileAppender.MaxFileSize=2M
log4delphi.appender.fileAppender.File=app.log //文件名称
log4delphi.appender.fileAppender.AppDir=true //运行程序所在目录
log4delphi.appender.fileAppender.Append=true //追加方式

对日志的输出格式的设置,注释掉默认的格式,放开自己的格式:

#log4delphi.appender.fileAppender.layout=TSimpleLayout  //默认的简单方式,日志文件中只写入你输出的内容如:log.debug('xxx'); 日志只记录xxx
log4delphi.appender.fileAppender.layout=TPatternLayout //自定义Pattern参数来设置日志输出格式
log4delphi.appender.fileAppender.layout.Pattern=%d{
     yyyy-mm-dd hh:nn:ss:zzz} [%5p] [%L] [%e] %m%n

当然高级用户还有不同优先级的log,探索吧,后浪!

你可能感兴趣的:(编程工具,delphi)