144人参与 • 2024-05-16 • Delphi
logger 很多框架都有,简单的实现就是一个队列加一根线,有复杂的,qdac里面涉及的就很巧妙,本来qdac就是个线程框架,所以也有先天优势。
在mormot 里面自然也有日志实现,它设计的比较麻烦。
begin tsynlog.family.level := log_verbose; // disable logs for benchmarking tsynlog.family.highresolutiontimestamp := false; tsynlog.family.noenvironmentvariable:=true; tsynlog.family.fileexistsaction := acappend; tsynlog.family.perthreadlog := ptonefileperthread; tsynlog.family.onarchive:=@eventarchivezip; tsynlog.family.autoflushtimeout := 1; end;
var log: isynlog; begin log:=tsynlog.enter(); log.log(tsynloginfo.slldebug, 'accdsdfdasdfafasf'); end;
由mormot.core.log处理的可用日志事件包括:
tsynloglevel 包含了以下是具体的事件:
sllinfo
:记录通用信息事件。slldebug
:记录详细的调试信息。slltrace
:记录低级别的逐步调试信息。sllwarning
:记录意外值(非错误)。sllerror
:记录错误信息。sllenter
:记录每个方法的开始。sllleave
:记录每个方法的退出。slllasterror
:记录getlasterror操作系统消息。sllexception
:记录抛出的所有异常——自windows xp起可用。sllexceptionos
:记录所有操作系统低级别异常(如edivbyzero、erangeerror、eaccessviolation等)。sllmemory
:记录内存统计信息(以mb为单位)。sllstacktrace
:记录调用者的堆栈跟踪(它默认是 tsynlogfamily.levelstacktrace
的一部分,如 sllerror
、sllexception
、sllexceptionos
、slllasterror
和 sllfail
)。sllfail
:为 tsyntestslogged.failed
方法定义,并可用于记录一些客户端断言(可能是通知,而非错误)。sllsql
:专用于跟踪sql语句。sllcache
:应用于跟踪内部缓存机制。sllresult
:可以跟踪sql结果,json编码。slldb
:专用于跟踪低级别的数据库引擎功能。sllhttp
:可用于跟踪http进程。sllclient
/sllserver
:可用于跟踪某些客户端或服务器进程。sllservicecall
/sllservicereturn
:跟踪某些远程服务或库。slluserauth
:跟踪用户身份验证(例如,针对个别请求)。sllcustom*
项目:可用于任何目的。sllnewrun
:在进程打开旋转日志时写入。sllddderror
:记录任何与ddd相关的低级别错误信息。slldddinfo
:记录任何与ddd相关的低级别调试信息。sllmonitoring
:记录统计信息(如果可用),或者可用于在连接到toolsadmin的人员之间进行实时聊天。在 mormot 1.18 中提供了要给logger日志的查器。其实有点累赘,当然用了那个工具顿时就可以感觉到 mormot 的日志模式还是很厉害的。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论