123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081(*---------------------------------------------------------------------------
Copyright (c) 2015 The logs programmers. All rights reserved.
SPDX-License-Identifier: ISC
---------------------------------------------------------------------------*)type'alog=('a,unitLwt.t)Logs.msgf->unitLwt.tletkmsgk?(src=Logs.default)levelmsgf=matchLogs.Src.levelsrcwith|None->k()|Somelevel'whenlevel>level'->(iflevel=Logs.ErrorthenLogs.incr_err_count()elseiflevel=Logs.WarningthenLogs.incr_warn_count()else());(k())|Some_->(iflevel=Logs.ErrorthenLogs.incr_err_count()elseiflevel=Logs.WarningthenLogs.incr_warn_count()else());let(ret,unblock)=Lwt.wait()inletk()=Lwt.bindretkinletover()=Lwt.wakeupunblock()inLogs.reportsrclevel~overkmsgfletkunit_=Lwt.return()letmsg?srclevelmsgf=kmsgkunit?srclevelmsgfletapp?srcmsgf=kmsgkunit?srcLogs.Appmsgfleterr?srcmsgf=kmsgkunit?srcLogs.Errormsgfletwarn?srcmsgf=kmsgkunit?srcLogs.Warningmsgfletinfo?srcmsgf=kmsgkunit?srcLogs.Infomsgfletdebug?srcmsgf=kmsgkunit?srcLogs.Debugmsgfleton_error?src?(level=Logs.Error)?header?tags~pp~uset=Lwt.bindt@@function|Okv->Lwt.returnv|Errore->kmsg(fun()->usee)?srclevel@@funm->m?header?tags"@[%a@]"ppeleton_error_msg?src?(level=Logs.Error)?header?tags~uset=Lwt.bindt@@function|Okv->Lwt.returnv|Error(`Msge)->kmsguse?srclevel@@funm->m?header?tags"@[%a@]"Logs.pp_print_texte(* Source specific functions *)moduletypeLOG=sigvalmsg:Logs.level->'alogvalapp:'alogvalerr:'alogvalwarn:'alogvalinfo:'alogvaldebug:'alogvalkmsg:?over:(unit->unit)->(unit->'bLwt.t)->Logs.level->('a,'bLwt.t)Logs.msgf->'bLwt.tvalon_error:?level:Logs.level->?header:string->?tags:Logs.Tag.set->pp:(Format.formatter->'b->unit)->use:('b->'aLwt.t)->('a,'b)resultLwt.t->'aLwt.tvalon_error_msg:?level:Logs.level->?header:string->?tags:Logs.Tag.set->use:(unit->'aLwt.t)->('a,[`Msgofstring])resultLwt.t->'aLwt.tendletsrc_logsrc=letmoduleLog=structletmsglevelmsgf=msg~srclevelmsgfletkmsg?overklevelmsgf=kmsgk~srclevelmsgfletappmsgf=msgLogs.Appmsgfleterrmsgf=msgLogs.Errormsgfletwarnmsgf=msgLogs.Warningmsgfletinfomsgf=msgLogs.Infomsgfletdebugmsgf=msgLogs.Debugmsgfleton_error?level?header?tags~pp~use=on_error~src?level?header?tags~pp~useleton_error_msg?level?header?tags~use=on_error_msg~src?level?header?tags~useendin(moduleLog:LOG)