
    k
                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZ  ej                   ej"                  j$                  ej"                  j&                         G d dej(                               Zy)zapp logs tail command.    )absolute_import)division)unicode_literals)	logs_util)base)flags)stream)log)
propertiesc                   .    e Zd ZdZddiZed        Zd Zy)Tailz!Streams logs for App Engine apps.EXAMPLESa            To stream logs from a serving app, run:

            $ {command}

          To show only logs with a specific service, version, and level, run:

            $ {command} --service=s1 --version=v1 --level=warning

          To show only the logs from the request log for Standard apps, run:

            $ {command} --logs=request_log

          To show only the logs from the request log for Flex apps, run:

            $ {command} --logs=nginx.request
      c                     t         j                  j                  |        t         j                  j                  |        t         j                  j                  |        t         j
                  j                  |        y)z Register flags for this command.N)r   SERVICEAddToParserVERSIONLEVELLOGS)parsers    lib/surface/app/logs/tail.pyArgsz	Tail.Args5   sL     
MMf%	MMf%	KKF#	JJ6"    c                    t        j                         }|j                  t         j                         |j                  t         j                         |j                  t         j
                         t        j                  j                  j                  j                  d      }t        j                  ||j                  |j                  |j                  |j                        }t         j"                  j%                  d       t'        j(                  |dd      }|j+                         D ]0  }t         j,                  j%                  |j/                  |             2 y )NT)requiredzWaiting for new log entries...   d   )filterspolling_intervalnum_prev_entries)r   
LogPrinterRegisterFormatterFormatRequestLogEntryFormatNginxLogEntryFormatAppEntryr   VALUEScoreprojectGet
GetFilterslogsserviceversionlevelr
   statusPrintr	   
LogFetcher	YieldLogsoutFormat)selfargsprinterr'   r   log_fetcher	log_entrys          r   RunzTail.Run=   s    ""$Gi==>i;;<i667$$,,00$0?G""7DIIt||#'<<=G JJ56##G5658:K !**,		ggmmGNN9-. -r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r9    r   r   r   r      s/    )  
-( # #/r   r   N)r=   
__future__r   r   r   googlecloudsdk.api_lib.appr   googlecloudsdk.callioper   googlecloudsdk.command_lib.appr   googlecloudsdk.command_lib.logsr	   googlecloudsdk.corer
   r   ReleaseTracksReleaseTrackBETAGACommandr   r@   r   r   <module>rL      sl     &  ' 0 ( 0 2 # * D%%**D,=,=,@,@A-/4<< -/ B-/r   