Django Configuration de base de Django


Exemple

En interne, Django utilise le système de journalisation Python. Il existe plusieurs façons de configurer la journalisation d'un projet. Voici une base:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt': "%Y-%m-%d %H:%M:%S"
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'default'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'INFO',
        },
    }
}

Les formateurs

Il peut être utilisé pour configurer l'apparence des journaux lorsqu'ils sont imprimés sur la sortie. Vous pouvez définir de nombreux formateurs en définissant une chaîne de clé pour chaque formateur. Un formateur est ensuite utilisé lors de la déclaration d'un gestionnaire.

Manieurs

Peut être utilisé pour configurer où les journaux seront imprimés. Dans l'exemple ci-dessus, ils sont envoyés à stdout et à stderr. Il existe différentes classes de gestionnaires:

'rotated_logs': {
    'class': 'logging.handlers.RotatingFileHandler',
    'filename': '/var/log/my_project.log',
    'maxBytes': 1024 * 1024 * 5,  # 5 MB
    'backupCount': 5,
    'formatter': 'default'
    'level': 'DEBUG',
},

Cela produira des logs dans le fichier tergeted par filename . Dans cet exemple, un nouveau fichier journal sera créé lorsque la taille actuelle atteindra la taille de 5 Mo (l’ancien sera renommé en my_project.log.1) et les 5 derniers fichiers seront conservés pour l’archivage.

'mail_admins': {
    'level': 'ERROR',
    'class': 'django.utils.log.AdminEmailHandler'
},

Cela enverra chaque journal par eamil aux utilisateurs spécifiés dans la variable de réglage ADMINS . Le niveau est défini sur ERROR , de sorte que seuls les journaux avec le niveau ERROR seront envoyés par courrier électronique. Ceci est extrêmement utile pour rester informé sur les erreurs potentielles 50x sur un serveur de production.

D'autres gestionnaires peuvent être utilisés avec Django. Pour une liste complète, veuillez lire la documentation correspondante. Comme pour les formateurs, vous pouvez définir plusieurs gestionnaires dans un même projet, définissant pour chacun une chaîne de clé différente. Chaque gestionnaire peut être utilisé dans un enregistreur spécifique.

Bûcherons

Dans LOGGING , la dernière partie configure pour chaque module le niveau de consignation minimal, le ou les gestionnaires à utiliser, etc.