+
     Gi  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RI	t	^ RI
t
 ^ RIHt R.tRs/ t]
P                   ! 4       t ! R R]4      tR tR tR tR	 t ! R
 R]P0                  ! 4       4      t]P4                  ! ]P6                  ]P8                  4       ]P:                  ! ]4       ] P<                  ! ]P>                  4       R#    ^ RIHt  L; i)i    N)StringIOgetc                   s&   a  ] tR t^t o R tRtV tR# )
LogHandlerc                s    Wn         W n        R # Nhandlerstream)selfr   r   s   &&&//usr/lib/python3.14/site-packages/tuned/logs.py__init__ZLogHandler.__init__   s    ,+    r   N)__name__
__module____qualname____firstlineno__r	   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s      r
   r   c                 s    \         P                  ! 4       p\        P                  \        P                  ,           pR p\        V 4       F  pW1P                  V4      ,          pK  	  V# ) )randomZSystemRandomstringZascii_lettersZdigitsrangeZchoice)ZlengthZrZcharsZresis   &    r   _random_stringr      sL    				-	
-Q%# r
   c                 s   \         ;_uu_ 4        \        ^
4       F  p\        ^4      pV\        9  g   K   M	   RRR4       R# \	        4       p\
        P                  ! V4      pVP                  V 4       \
        P                  ! R4      pVP                  V4       \        P                  V4       \        WC4      pV\        V&   \        P                  RV,          4       VuuRRR4       #   + '       g   i     R# ; i)i
   Nz%%(levelname)-8s %(name)s: %(message)szAdded log handler %s.)log_handlers_lockr   r   log_handlersr    loggingStreamHandlersetLevel	FormattersetFormatterroot_logger
addHandlerr   debug)Z	log_levelr   tokenr   r   Z	formatterlog_handlers   &      r   log_capture_startr$   $   s    9a"5<	 
   :&!!&)'	9+-)	y!!7++#,u+e34	# s   "C.C.BC..C?	c                 s   \         ;_uu_ 4         \        V ,          pTP                  P	                  4       pTP                  P                  4        \        P                  TP                  4       \        T  \        P                  RT ,          4       TuuR R R 4       #   \         d     R R R 4       R # i ; i  + '       g   i     R # ; i)NzRemoved log handler %s.)
r   r   ZKeyErrorr   ZgetvalueZcloser   removeHandlerr   r!   )r"   r#   Zcontent   &  r   log_capture_finishr'   8   s    e$; '')'K//05-56	  
 
	  s.   B:B A7B: B7+B:6B77B::C	c                  s   \         f   \        P                  ! R4      s \        P                  ! 4       P
                  p V P                  R,          pVR8X  d	   Rp\         # VP                  R4      '       dM   VP                  R^4      w  r#\         P                  V4      pVP                  4        VP                  R4       V# Q h)NZtunedr   Z__main__ztuned..ZNOTSET)r   r   Z	getLoggerinspectZcurrentframeZf_backZf_localsZ
startswithZsplitZgetChildremove_all_handlersr   )Zcalling_moduleZnameZrootZchildZchild_loggers        r   r   r   E   s    !!'*+&&(//
+J	$	
ooh**S!$-4%%e,,""$!	r
   c                   s   a a ] tR t^Xt oRt]P                  ! R4      tRtRt	V 3R lt
R tR t]P                  ]P                  ]P                   3R ltR t]R	 4       t]R
 4       tRtVtV ;t# )TunedLoggerz!Custom TuneD daemon logger class.z1%(asctime)s %(levelname)-8s %(name)s: %(message)sNc                s   < \         \        V `
  ! V/ VB  V P                  \        P
                  4       V P                  4        R # r   )Zsuperr+   r	   r   r   ZINFOswitch_to_console)r   argskwargs	__class__s   &*,r   r	   ZTunedLogger.__init__^   s3    T#T4V4--r
   c                sP    V P                   ! \        P                  V.VO5/ VB  R # r   )ZlogconstsLOG_LEVEL_CONSOLE)r   Zmsgr-   r.   s   &&*,r   consoleZTunedLogger.consolec   s     ((6##S:4:6:r
   c                s|    V P                  4        V P                  4        V P                  V P                  4       R # r   )_setup_console_handlerr*   r    _console_handler)r      &r   r,   ZTunedLogger.switch_to_consolef   s,    //$''(r
   c                s    V P                  WV4       V P                  4        V P                  V P                  4       R # r   )_setup_file_handlerr*   r    _file_handler)r   filenamemaxBytesbackupCounts   &&&&r   switch_to_fileZTunedLogger.switch_to_filek   s2     8{;//$$$%r
   c                sR    V P                   pV F  pV P                  V4       K  	  R # r   )handlersr%   )r   Z	_handlersr   r&   r   r*   ZTunedLogger.remove_all_handlersr   s#    mm)gg r
   c                s    V P                   e   R # \        P                  ! 4       V n         V P                   P                  V P                  4       R # r   )r4   r   r   r   
_formatter)clsr5   r   r3   Z"TunedLogger._setup_console_handlerw   s:    %	 ..0###CNN3r
   c                s   V P                   e   R # \        P                  P                  V4      pVR8X  d   Rp\        P                  P	                  V4      '       g   \        P
                  ! V4       \        P                  P                  V\        V4      \        V4      R7      V n         V P                   P                  V P                  4       R # )Nr   r(   )r9   r:   )r7   osZpathZdirnameZexistsZmakedirsr   r<   ZRotatingFileHandlerZintr   r=   )r>   r8   r9   r:   Zlog_directorys   &&&& r   r6   ZTunedLogger._setup_file_handler   s    "	''//(+-b=		&	&;;}&&::HS5E ; G#  0r
    )r   r   r   r   Z__doc__r   r   r=   r4   r7   r	   r2   r,   r0   ZLOG_FILEZLOG_FILE_MAXBYTESZLOG_FILE_COUNTr;   r*   Zclassmethodr3   r6   r   r   Z__classcell__)r/   r   s   @@r   r+   r+   X   s     ( ST
;)
 &,__))))&
 4 4 1 1 1r
   r+   ) Zatexitr   Zlogging.handlersr?   Zos.pathr)   Ztuned.constsr0   r   r   Z	threadingr    ZioZ__all__r   r   ZLockr   Zobjectr   r   r$   r'   r   ZgetLoggerClassr+   ZaddLevelNamer1   ZLOG_LEVEL_CONSOLE_NAMEZsetLoggerClassZregisterZshutdownr@   r
   r   <module>rA      s       	       'NN$  
(&41'((* 41l   V--v/L/L M   { #    !Gs   C C