Cómo mantener registros en Falcon

Estoy usando Python3.4 y Falcon1.0.0 y estoy sirviendo mi aplicación falcon usando apache2. Ahora, quiero mantener los registros en mi aplicación falcon.

Puede usarlo de la siguiente manera, es decir, almacenar la siguiente función en el archivo “logger.py”:

import logging import logging.handlers import os from datetime import datetime import sys # Logging Levels # https://docs.python.org/3/library/logging.html#logging-levels # CRITICAL 50 # ERROR 40 # WARNING 30 # INFO 20 # DEBUG 10 # NOTSET 0 def set_up_logging(): file_path = sys.modules[__name__].__file__ project_path = os.path.dirname(os.path.dirname(os.path.dirname(file_path))) log_location = project_path + '/logs/' if not os.path.exists(log_location): os.makedirs(log_location) current_time = datetime.now() current_date = current_time.strftime("%Y-%m-%d") file_name = current_date + '.log' file_location = log_location + file_name with open(file_location, 'a+'): pass logger = logging.getLogger(__name__) format = '[%(asctime)s] [%(levelname)s] [%(message)s] [--> %(pathname)s [%(process)d]:]' # To store in file logging.basicConfig(format=format, filemode='a+', filename=file_location, level=logging.DEBUG) # To print only # logging.basicConfig(format=format, level=logging.DEBUG) return logger 

Así que ahora, cuando quiera registrar algo, solo llame a esta función y registre lo que quiera registrar.

Tomemos esto como ejemplo:

 import falcon import base64 import json from logger import set_up_logging logger = set_up_logging() app = falcon.API() app.add_route("/rec/", GetImage()) class GetImage: def on_post(self, req, res): json_data = json.loads(req.stream.read().decode('utf8')) image_url = json_data['image_name'] base64encoded_image = json_data['image_data'] with open(image_url, "wb") as fh: fh.write(base64.b64decode(base64encoded_image)) res.status = falcon.HTTP_203 res.body = json.dumps({'status': 1, 'message': 'success'}) logger.info("Image Server with image name : {}".format(image_name)) 

Espero que esto ayude.

No hay nada específicamente incorporado de Falcon al respecto. En realidad eso es lo que lo hace diferente de otros marcos; Con Falcon usted es libre de usar cualquier biblioteca que desee.

Para la mayoría de mis proyectos, el logging estándar del módulo de Python es lo suficientemente bueno.