^c`ddlZddlmZddlmZmZmZddZdZdZ Gdd Z Gd d Z Gd d Z dS)N)encoding)dateutilprocutil stringutilcVfd}|dkr |}|j|kr\|}t|dz ddD]}|d||dz fzd||fz|||dko|dzn#t$rYnwxYw|dd S) z{Open log file in append mode, with optional rotation If maxsize > 0, the log file will be rotated up to maxfiles. c  |n]#t$rP}|jtjkr1d|t j|jfzYd}~nd}~wwxYw |r||dSdS#t$rX}|jtjkr8d||t j|jfzYd}~dSYd}~dSd}~wwxYw)Ns warning: cannot remove '%s': %s s(warning: cannot rename '%s' to '%s': %s ) unlinkOSErrorerrnoENOENTdebugr strtolocalstrerrorrename)oldpathnewpatherruivfss 7/usr/lib/python3/dist-packages/mercurial/loggingutil.pyrotatezopenlogfile..rotatesK  JJw       yEL((8 3CL A ABC    - 7G,,,,, - -   yEL((@) %s)rdatestrrgetpid)msgdatepids r_formatlogliner.As5  #7 8 8 8D /  C T3, ,,cd|vp||vS)N*)eventtrackeds r _matcheventr5Gs 7? .ew..r/c&eZdZdZddZdZdZdS) fileloggerz;Basic logger backed by physical file with optional rotationrcf||_||_t||_||_||_dSN)_vfs_nameset_trackedevents _maxfiles_maxsize)selfrr r4r!r"s r__init__zfilelogger.__init__Ns0  !'ll! r/c,t||jSr9r5r=r@r3s rr4zfilelogger.trackedU5$"5666r/cdt|} t||j|j|j|j5}||ddddS#1swxYwYdS#t$r<}|d|jtj |fzYd}~dSd}~wwxYw)N)r!r"cannot write to %s: %s ) r.r&r:r;r>r?writeIOErrorrr forcebytestr)r@rr3r+optslinefprs rlogzfilelogger.logXs%c""                            HH+:z6s;;<=          s:(A)A A)A  A)#A $A)) B/31B**B/Nrr__name__ __module__ __qualname____doc__rAr4rNr2r/rr7r7KsLEE    777r/r7c$eZdZdZdZdZdZdS)fileobjectloggerz'Basic logger backed by file-like objectc<||_t||_dSr9)_fpr<r=)r@rMr4s rrAzfileobjectlogger.__init__ms!'llr/c,t||jSr9rCrDs rr4zfileobjectlogger.trackedqrEr/cLt|} |j||jdS#t$rS}|dt j|jjt j|fzYd}~dSd}~wwxYw)NrG) r.rXrHflushrIrrrJr )r@rr3r+rKrLrs rrNzfileobjectlogger.logtsc""  HNN4 HNN         HH++DHM::+C00          s3A B#ABB#NrPr2r/rrVrVjsG11+++777     r/rVc$eZdZdZdZdZdZdS) proxyloggerz4Forward log events to another logger to be set latercd|_dSr9)logger)r@s rrAzproxylogger.__init__s  r/cH|jduo|j|Sr9)r_r4rDs rr4zproxylogger.trackeds${$&E4;+>+>u+E+EEr/cR|jJ|j||||dSr9)r_rN)r@rr3r+rKs rrNzproxylogger.logs0{&&& E3-----r/NrPr2r/rr]r]sJ>>FFF.....r/r]rO) r rutilsrrrr&r.r5r7rVr]r2r/rrds '1'1'1'1T--- ///>2 . . . . . . . . . .r/