Я использую Python3.4 и Falcon1.0.0, и я обслуживаю приложение falcon с помощью apache2. Теперь я хочу вести журналы в своем приложении falcon.Как вести журналы в Falcon
1
A
ответ
3
Вы можете использовать следующий способ, то есть магазин следующие функции в файле «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
Так теперь, когда вы хотите войти что-нибудь, просто вызовите эту функцию там и войти все, что вы хотите, чтобы войти ,
Пусть принять это в качестве примера:
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))
Я надеюсь, что это поможет.
0
В этом отношении нет ничего специально встроенного в Falcon. На самом деле это то, что отличает его от других структур; с Falcon вы можете использовать любую библиотеку, которую хотите.
Для большинства моих проектов стандартный модуль python logging
достаточно хорош.
Но где поставить код для хранения журналов? Напр. если мой код разбивается на метод on_get(), как сохранить журнал для него. – pikkupr