Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Comment trier les logs de ses différentes applis ?

+1 vote

J'aime bien ranger les logs de mes différentes applis dans un fichier de log, ce qui permet de trier si pas hasard il y a une erreur.

Est-ce qu'il y a un moyen pour que j'ai les logs des applications de monprojet/{a, b, c} dans un répertoire monprojet/log/a.log (b.log, c.log). Actuellement j'ai tout dans un seul fichier de log et/ou dans ceux d'apache, mais je ne trouve pas cela pratique, surtout avec plusieurs projets en parallèle ...

Par exemple pour les forms dans une appli j'ai :

import logging
#log = logging.getLogger(__name__)
#log = logging.basicConfig(filename=settings.PROJECT_PATH+'/log/forms.log')
logging.basicConfig(filename=settings.PROJECT_PATH+'/log/forms.log',level=logging.DEBUG)

Je voudrais pouvoir spécifier les messages dont j'ai besoin dans des fichiers dédiés quand je fais :

logging.debug("Je recois le mot cle %s" % keyw )

Peut-être n'est-ce pas la bonne solution ?

Merci d'avance,

demandé 31-Aou-2016 par Dr_ST

1 Réponse

+2 votes

J'ai proposé ma solution pour le logging dans cette réponse, qui permet notamment de spécifier, dans chaque fichier, le nom du sous-logger.

Fichier a:

import logger
LOGGER = logger.get('a')

Fichier b:

import logger
LOGGER = logger.get('b')

Et, automatiquement, le wrapper suivant (placé dans le module logger) s'occupera de retourner le sous-logger en 'nomdulogger.sousnom':

def get(sublogger=None, name='nomdulogger'):
    if sublogger:
        return logging.getLogger(name + '.' + sublogger)
    else:
        return logging.getLogger(name)

La gestion des sous-logger est simple : ils héritent des propriétés du logger de niveau supérieur. ('nomdulogger' ici)
Pour avoir un fichier par sous-logger, il faut le spécifier dans la config.
Voir le cookbook du module logging ou le tuto sam et max

répondu 31-Aou-2016 par lucas (2,108 points)
edité 1-Sep-2016 par lucas
...