Hola que tal

Estoy aprendiendo a utilizar las funciones decoradoras para llevar un log:

Donde tengo la funcion decoradora:

/def log(f):
    def inner(*args,**kwargs):
        if sincro_config.NIVEL_REGISTRO == 1:
            archivo_log_ = open(config.LOG_PATH,'a')
archivo_log_.write('Ejecutando %s %s\n'%(f.__name__,strftime("%Y-%m-%d %H:%M:%S", localtime())))
            archivo_log_.close()
            #return inner
        elif sincro_config.NIVEL_REGISTRO==2:
            archivo_log_ = open(config.LOG_PATH,'a')
archivo_log_.write('Ejecutando %s %s\n'%(f.__name__,strftime("%Y-%m-%d %H:%M:%S", localtime())))
            archivo_log_.write('Parametros Recibos: \n')
            for name,value in kwargs.items():
archivo_log_.write('Nombre: %s\t\tValor: %s\n'%(name,value))
            archivo_log_.close()
    return inner/


ademas tengo la clase de la cual quiero ir guardando los sucesos:

class Conexion:

    configuracion_ = ''
    cursor_ = ''
    bandera_ = ''
    conxn_ = ''

    def __init__(self,configuracion_):
        self.configuracion_ = configuracion_
        return


    @log
    def get_pk(self,_tabla):
            [..]
            return lista_

   @log
    def get_query_statement(self,_diccionario,_tabla,_operacion):
        [..]
        return     cadena

    @log
    def connect(self):
            [..]
            return

    @log
    def get_informacion(self ,_tabla,_diccionario ):
          query_ = self.get_query_statement(_diccionario,_tabla,'select')
          resultado_ = self.cursor_.query(query_).dictresult()
          return resultado_

# Funcion que tiene como finalidad realizar una escritura en la base de datos # rebice un diccionario con los campos, el nombre de la tabla y el tipo de operacion
    # a realizar ( insert o update)
    @log
    def set_informacion(self,_diccionario,_tabla, _operacion):
        [ .. ]
        return success_

    # Cierra la conexion con la base de datos
    @log
    def close(self):
        [ .. ]
        return

Entonces cual realizo una prueba de mi clase  con el siguiente script:

from sincro_config import sincro_config
import sincro_conexion

db_ = sincro_conexion.Conexion(sincro_config)
db_.connect()

ventas_ = {'id_sucursal':2}
query_ = db_.get_informacion('sucursales',ventas_)

print query_
db_.close()

El log marcado como 2 :

me da el siguiente resultado:

/Ejecutando connect 2011-06-20  18:30:42
Parametros Recibos:
Ejecutando get_informacion 2011-06-20  18:30:42
Parametros Recibos:
Ejecutando close 2011-06-20  18:30:42
Parametros Recibos: /


Alguien me podría ayudar para poder guardar los parámetros que recibe la función que se va a ejecutar, y ademas la funcion get_informacion, dentro de su funcionamiento manda a llamar a la funcion get_query_statement y esta no se registra en el log ¿por qué?

Saludos y gracias y por su atención.



_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a