
    ;\h                         d Z dZdZddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZ  G d d	      Zd
 Zed        Zd Zy)zCopyright 2021, 3LizzGPL version 3zinfo@3liz.org    N)contextmanager)QgisQgsMessageLog)PLUGINc                   d    e Zd Zedefd       Zedefd       Zedefd       Zedefd       Z	y)Loggermessagec                 h    t        j                  t        |       t        t        j
                         y N)r   
logMessagestrr   r   Infor	   s    :/var/www/qgis-server/plugins/wfsOutputExtension/logging.pyinfozLogger.info   s     	  WvtyyA    c                 h    t        j                  t        |       t        t        j
                         y r   )r   r   r   r   r   Warningr   s    r   warningzLogger.warning   s     	  Wvt||Dr   c                 h    t        j                  t        |       t        t        j
                         y r   )r   r   r   r   r   Criticalr   s    r   criticalzLogger.critical   s     	  Wvt}}Er   ec                 ^    t         j                  d|  dt        j                                 y)z Log a Python exception. zCritical exception:

N)r   r   	traceback
format_excr   s    r   log_exceptionzLogger.log_exception!   s(     	/s"Y5I5I5K4LMNr   N)
__name__
__module____qualname__staticmethodr   r   r   r   BaseExceptionr    r   r   r   r      sx    Bc B B E E E F# F F O O Or   r   c                       fd}|S )z$ Decorator to catch all exceptions. c                  n    	  | i | y # t         $ r}t        j                  |       Y d }~y d }~ww xY wr   	Exceptionr   r   )argskwargsr   funcs      r   inner_functionz)exception_handler.<locals>.inner_function)   s6    	$$!&! 	$  ##	$s    	4/4r%   )r,   r-   s   ` r   exception_handlerr.   '   s    $
 r   c               #   l   K   	 d y# t         $ r} t        j                  |        Y d} ~ yd} ~ ww xY ww)z3 Define a trap context for catching all exceptions Nr(   r   s    r   trapr0   1   s.        Q s    4	 4	1,414c                 B     t        j                          fd       }|S )z Decorator to log function. c                      t        j                          } | i |}t        j                          }t        j                  j                   dt	        ||z
  d       d       |S )Nz ran in    s)timer   r   r    round)r*   r+   startvalueendr,   s        r   log_function_corez'log_function.<locals>.log_function_core<   sV    		d%f%iikt}}oXeC%K.C-DAFGr   )	functoolswraps)r,   r:   s   ` r   log_functionr=   :   s&    __T  r   )__copyright____license__	__email__r;   r5   r   
contextlibr   	qgis.corer   r   wfsOutputExtension.definitionsr   r   r.   r0   r=   r%   r   r   <module>rD      sP   &	    % ) 1O O.    
r   