J'utilise aiohttp 2 avec Python 3.6 et je veux enregistrer les demandes arrivant à l'application.spécifiez le format de demande de journal dans aiohttp 2
Je l'ai fait:
# use ISO timestamps
from time import gmtime
logging.Formatter.converter = gmtime
# create a formatter
ch = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s %(levelname)s %(name)s - %(message)s', '%Y-%m-%dT%H:%M:%S')
ch.setFormatter(formatter)
# show all emssages (default is WARNING)
logging.getLogger('aiohttp.access').setLevel(logging.DEBUG)
# attach the handler
logging.getLogger('aiohttp.access').addHandler(ch)
et maintenant lorsque l'application est en cours d'exécution, je reçois un journal dans ce format:
2017-04-19T16:02:17 INFO aiohttp.access - 127.0.0.1 - - [19/Apr/2017:16:02:17 +0000] "GET /test HTTP/1.1" 404 547 "-" "curl/7.51.0"
le composant message
a un horodatage redondant, et je voudrais personnaliser son format. Le documentation dit que cela devrait être possible, mais je ne comprends pas comment le faire fonctionner et il n'y a pas d'exemples de code.
Je trouve que this usage mais avec:
mylogger = logging.Logger('aiohttp.access')
mylogger.setLevel(logging.DEBUG)
mylogger.addHandler(ch)
handler = app.make_handler(
logger=mylogger,
access_log_format='%r %s %b',
)
l'application ne produit aucun journal du tout. Je ne comprends pas ce que fait make_handler
exactement, et un previous question n'aide pas.
Comment puis-je formater la partie message
du journal et insérer les éléments répertoriés dans les docs aiohttp?
Avez-vous appelé 'aiohttp.web.Application.make_handler()'? –
Non, dans cet exemple, ils l'appellent sur l'instance de l'application. J'ai essayé néanmoins et il dit 'make_handler() manquant 1 argument de position requis: 'self' donc il semble que c'est une méthode d'instance – Jacopofar