delphi 日志库log4D
来源:互联网 发布:java架构师招聘 编辑:程序博客网 时间:2024/06/05 02:17
在古老的开发工具delphi的日志库非常稀少,不如其他开发语言,比如C++, .NET等等日志库那么多而且现在仍旧持续更新。
想当年delphi可是无数人的理想的开发工具,和vb开发难度差不多但是他开发出的应用程序性能要好得多。
下面说说淘到宝的log4D,用的人很少网上很少完整的开发教程。
首先,log4D和其他语言的日志库类似,有Logger,Layout,ErrorHandler,Filter,Render,Appender等基本概念。
Logger是日志类,用于提供记录日志的方法。
Layout是指日志打印的格式
Renderer是指对象渲染器,用于对特定的类进行渲染。
ErrorHandler是错误处理器,
Filter是过滤器,决定特定的日志事件是否会被记录下来。
Appender,附加器,用于将日志内容附加到特定的地方,比如控制台、文件、数据库、网络等等。
这些详细的就不说了,只说他的用法。毕竟是用他不是要更改他现在没时间来仔细阅读他的代码。配置文件说明(log4D.props来自https://github.com/pretorean/log4d)下面的配置文件和网上的不同,我只是用文件,其他的ODS不用参照下面的和你下载的一比较就知道如何用。
# Set internal debugging
log4d.configDebug=true //内部的调试模式
# Global logging level
log4d.threshold=info //日志级别 all|fatal|error|warn|info|debug|off
# Set logger factory
log4d.loggerFactory=TLogDefaultLoggerFactory //日志工厂,产生Logger的
# Set root level
log4d.rootLogger=warn,RFile1 //配置根Logger的, 格式为[level],appenderName[,appenderName]...
# Create root appender //下面是根Logger的appender配置,注意名称RFile1必须和上面的意志
log4d.appender.RFile1=TLogRollingFileAppender
//Rolling文件类型,他可以定制在maxBackupIndex个文件见循环。这个功能实现的不强,其他语言可以定义一天一个日志文件
log4d.appender.RFile1.append=true //在文件的末尾插入内容
log4d.appender.RFile1.fileName=C:\Temp\Log4D.txt //文件名称
log4d.appender.RFile1.maxFileSize=1KB //这是测试用的,最大文件尺寸。看看源码也可以是MB GB
log4d.appender.RFile1.maxBackupIndex=2 //循环文件的最大个数
log4d.appender.RFile1.errorHandler=TLogOnlyOnceErrorHandler
log4d.appender.RFile1.layout=TLogPatternLayout //输出格式
log4d.appender.RFile1.layout.dateFormat=yyyy-mm-dd hh:nn:ss.zzz//自定义日期时间格式,年月日 时分秒毫秒
log4d.appender.RFile1.layout.pattern=%d [%t] %p %c %x - %m%n//日志的格式,%d 日期时间 %t线程ID...看看源码
# Establish logger hierarchy //这里是自定义的Logger,格式如上。
log4d.logger.testlog4d=error,File1
# Create a file appender
log4d.appender.File1=TLogFileAppender
log4d.appender.File1.append=true
log4d.appender.File1.fileName=C:\Temp\Log4D.log
log4d.appender.File1.errorHandler=TLogOnlyOnceErrorHandler
log4d.appender.File1.layout=TLogPatternLayout
log4d.appender.File1.layout.dateFormat=yyyy-mm-dd hh:nn:ss.zzz
log4d.appender.File1.layout.pattern=%d [%t] %p %c %x - %m%n
delphi中使用
procedure TForm2.Button1Click(Sender: TObject);
var
logger1 : TLogLogger;
logger2 : TLogLogger;
begin
TLogPropertyConfigurator.Configure('log4d.props');//此时log4d.props和exe必须在同一目录
logger1 := TLogLogger.GetLogger('testlog4d'); //这是获得log4d.logger.testlog4d=error,File1,注意名称必须一样否则写不上
logger1.Error('error output');
logger1.Warn('warn output');
logger1.Info('info output');
logger1.Debug('debug output');
logger1.Trace('trace output');
logger2 := TLogLogger.GetRootLogger; //这是获得log4d.rootLogger=warn,RFile1 定义的logger
logger2.Fatal('fatal output');
logger2.Error('error output');
logger2.Warn('warn output');
logger2.Info('info output');
logger2.Debug('debug output');
logger2.Trace('trace output');
end;
执行后参照下日志文件的内容和上面的代码写的,发现了什么?
没发现?
对了,logger1是不是缺少了什么?对的,因为他设置为error,所以只写error,fatal,其他的级别不够忽略了!
- delphi 日志库log4D
- Delphi日志工具Log4D-入门使用篇
- delphi的日志组件log4d的内存泄露问题
- Log4D for Delphi XE7
- delphi 日志单元
- delphi 写日志
- delphi日志模块代码
- Delphi应用程序日志写入系统日志
- Delphi应用程序日志写入系统日志
- Delphi输出日志的方法
- Delphi日志基本的绘图
- Delphi 日志输出记录类
- Delphi操作Excel日志记录
- delphi无法定位程序输入点 于动态链接库【问题日志】
- 清除系统日志的Delphi代码
- Delphi 创建目录及写日志文件
- 没落的delphi的日志类log4delphi
- Delphi中写日志文件log总结
- 求一亿个数字里面最小的10个数字
- 分解质因数
- 45.top10活跃session之计算top10品类被各sessoin点击的次数
- 数据库导出excel文件
- 整理一下java5的新特性(引用了很多,都有原文链接)
- delphi 日志库log4D
- 神经网络用于数据降维
- 修改表结构
- [转]用linux下常用命令wget进行整站下载(递归下载至本地)
- 浅谈移动端开发--物理像素和逻辑像素
- 判断平面多边形的凹凸性
- c++并查集实现
- Eclipse 导出项目
- C#利用SqlDataAdapte对DataTable进行批量数据操作