
    5f                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
  ej                  d      ZdadZdZd	 Zd
 ZddZd ZddZg g eefdZedk(  r e        yy)    N)	jsonutils)importutils)log	termcolorF	levelname	tracebackc            	         t               } | j                  at        j                  t
        | j                  | j                  | j                  | j                  | j                  | j                        }| j                  r| j                  j                  dd       d}| j                  j                         }|| j                  k  r]|dkD  rX|dz
  }| j                  j                  |       | j                  j!                  d      dk(  r|dz   }|| j                  k  r|dkD  rX	 t#        | j                  || j$                        D ]  }t'        |        y # t(        $ r t+        j,                  d       Y y w xY w)N)loggerslevels	level_keytraceback_keyr         
)
parse_argscolor
_USE_COLOR	functoolspartialconsole_formatprefixlocatorr
   r   levelkeytbkeylinesfileseektellreadreformat_jsonfollowprintKeyboardInterruptsysexit)args	formatternewlinesposlines        </usr/lib/python3/dist-packages/oslo_log/cmds/convert_json.pymainr,   !   s$   <DJ!!{{--jj
I zz 			q!iinn$**$q'CIINN3yy~~a D(#a<	 $**$q
!$))YD 	D$K	 s   $1E E76E7c                     t        j                         } | j                  ddt        j                  t        j
                         d       | j                  ddd       | j                  d	d
d       | j                  dt        d       | j                  dt        d       | j                  ddddd       | j                  ddddd       | j                  dddt        d       | j                  ddg d        | j                  d!dg d"        | j                         }|j                  rt        st        d#      |S )$Nr   ?zKJSON log file to read from (if not provided standard input is used instead))nargsdefaulttypehelpz--prefixz:%(asctime)s.%(msecs)03d %(process)s %(levelname)s %(name)szMessage prefixes)r0   r2   z	--locatorz&[%(funcname)s %(pathname)s:%(lineno)s]z"Locator to append to DEBUG recordsz
--levelkeyz.Key in the JSON record where the level is heldz--tbkeyz<Key in the JSON record where the traceback/exception is heldz-cz--color
store_trueFz'Color log levels (requires `termcolor`))actionr0   r2   z-fz--followz1Continue parsing new data until KeyboardInterruptz-nz--lineszsLast N number of records to view. (May show less than N records when used in conjuction with --loggers or --levels))requiredr1   r2   z	--loggers*z,only return results matching given logger(s))r/   r0   r2   z--levelsz-Only return lines matching given log level(s)z4Coloring requested but `termcolor` is not importable)argparseArgumentParseradd_argumentr$   stdinFileTypeDEFAULT_LEVEL_KEYDEFAULT_TRACEBACK_KEYintr   r   r   ImportError)parserr&   s     r+   r   r   @   s   $$&F
!399%..0@  A
 
!F/  1  HA  C  1M  O 	 5<  = i+UF  H j+U2  3 i!&SJ  K
 !2K  M 
!2L  N Dzz) ( ) 	)K    c                     || }t         s|S dddgfdddgfddgfddgfddgfddgfd}|j                  | dg f      \  }}|rt        j                  |||      S |S )	Nredreverseboldyellowwhite)excFATALERRORWARNINGWARNINFO )r   attrs)r   getr   colored)keytextcolorsr   rO   s        r+   coloriserU   n   s    |	6*+)V,-&"vh'F8$6(#F ::cB8,LE5  U% @@KrA   c                 $    t        d|       d|S )NrH   z: )rU   )r   msgs     r+   warnrX      s    v.44rA   c              #     K   	 | j                         }|s|rt        j                  d       +y |j                         }|s?	 t	        j
                  |      } ||      D ]  }|  f# t        $ r t        d|       Y w xY ww)Ng?zNot JSON)readlinetimesleepstripr   loads
ValueErrorrX   )fhr'   r!   r*   recordout_lines         r+   r    r       s     
{{}

3zz|	__T*F "&) 	HN	!   	z4((	s*   A BA* B*BBBBc              #   >  K   t        j                  t        |      }|r&|j                  d      t	        fd|D              sy |r|j                  |      |vry |j                  |      }|rt        |      ||<   	 | |z  } d}|j                  dd      t        j                  k  s|dk(  r||z  }dj                  d	 | |d
   |fD               |j                  |      }
|
rMt        |
      t        u r|
j                         j                  d      }
|
D ]  }dj                  | |g        y y # t        $ r^ t        d|j                         D 	ci c],  \  }}	t        |      t        |	t              rt        |	      n|	. nc c}	}w c}	}       Y y w xY ww)Nnamec              3   @   K   | ]  }j                  |        y wN)
startswith).0nrd   s     r+   	<genexpr>z!console_format.<locals>.<genexpr>   s     7!4??1%7s   z(Missing non-string placeholder in recordrN   levelnod   DEBUG c              3   &   K   | ]	  }|s|  y wrf    )rh   xs     r+   rj   z!console_format.<locals>.<genexpr>   s     Ha1Hs   messager   )collectionsdefaultdictstrrP   anyrU   	TypeErrorrX   items
isinstancer   rm   joinr1   rstripsplit)r   r   ra   r
   r   r   r   r   kvtbtb_linerd   s               @r+   r   r      s     $$S&1Fzz&!7w77::i .

9%I$Y/y& G

9c"cii/93GF"
((Hvvi'8'BH
HH	M	"B	8s?""4(B 	.G((FG,--	. 
   = &01 FjC&8CFa? 0 01 	1 	s7   A:F>D3 B0F3"F1FFFFF__main__rf   )F)r7   rs   r   r$   r[   oslo_serializationr   
oslo_utilsr   oslo_logr   
try_importr   r   r<   r=   r,   r   rU   rX   r    r   __name__rp   rA   r+   <module>r      s       
  ( " "K"";/	 
 # >+\&5, 57r.!6(.V zF rA   