log-format uWSGI, 2 exemples (verbeux, simplifié)

Un exemple verbeux de log-format verbeux, puis une version simplifiée

Comprendre le logging uWSGI est essentiel pour optimiser et déboguer efficacement vos applications Web. Dans cette brève, je décompose le format détaillé de logging uWSGI pour vous aider à comprendre chaque paramètre que vous pourriez rencontrer dans vos logs.

Voici un exemple de log-format uWSGI très verbeux :

log-format = [pid: %(pid)|app: -|req: -/-] (rss: %(rssM)M - vsz: %(vszM)M) %(addr) (%(user)) {%(vars) vars in %(pktsize) bytes} [%(ctime)] %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs (%(proto) %(status)) %(headers) headers in %(hsize) bytes (%(switches) switches on core %(core))

Signification des différents éléments ce log-format uWSGI :

  • pid : L'ID du processus uWSGI.

  • app : Le nombre de l'application WSGI utilisée pour traiter la demande. Si cela est indiqué par un "-", cela signifie qu'aucune application n'a été utilisée, probablement parce que la demande n'a pas abouti.

  • req : Le nombre de requêtes que le worker a traitées jusqu'à présent. Le format est "requêtes traitées / requêtes totales".

  • rss : L'utilisation de la mémoire résidente (c'est-à-dire l'espace mémoire réellement utilisé) par le processus, en mégaoctets.

  • vsz : L'espace mémoire virtuel utilisé par le processus, en mégaoctets.

  • addr : L'adresse IP du client qui a fait la demande.

  • user : L'utilisateur uWSGI qui a traité la demande.

  • vars : Le nombre de variables HTTP transmises avec la demande.

  • pktsize : La taille du paquet de la demande, en octets.

  • ctime : L'heure à laquelle la demande a été traitée.

  • method : La méthode HTTP de la demande (par exemple, GET, POST, etc.).

  • uri : L'URI de la demande.

  • rsize : La taille de la réponse générée, en octets.

  • msecs : Le temps qu'il a fallu pour générer la réponse, en millisecondes.

  • proto : La version du protocole HTTP utilisée.

  • status : Le code de statut HTTP de la réponse.

  • headers : Le nombre de headers HTTP dans la réponse.

  • hsize : La taille des headers de la réponse, en octets.

  • switches : Le nombre de fois que le worker a été interrompu pour traiter une autre demande pendant qu'il traitait celle-ci.

  • core : Le numéro du core qui a traité la demande.

Voici un exemple de log-format uWSGI simplifié :

log-format = %(ctime) [pid: %(pid), app: %(app), wid: %(wid)] %(method) %(uri) => %(status)

Ce qui donnera ceci :

Tue May 15 20:21:19 2023 [pid: 172404, wid: 10] GET /home => 302
Tue May 15 20:21:25 2023 [pid: 172401, wid: 9] GET /dashboard/sections/ => 200
Tue May 15 20:21:27 2023 [pid: 172404, wid: 10] GET /dashboard/section/new/ => 200