Maison  >  Article  >  développement back-end  >  Exemples d'écriture de journaux Python dans des fichiers et des consoles via la journalisation

Exemples d'écriture de journaux Python dans des fichiers et des consoles via la journalisation

不言
不言original
2018-05-24 15:08:583189parcourir

Ce qui suit est un exemple d'écriture de journaux dans des fichiers et des consoles en python via la journalisation. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil ensemble

comme suit :

import logging 

# 创建一个logger 
logger = logging.getLogger('mylogger') 
logger.setLevel(logging.DEBUG) 
# 创建一个handler,用于写入日志文件 
fh = logging.FileHandler('test.log') 
fh.setLevel(logging.DEBUG) 
# 再创建一个handler,用于输出到控制台 
ch = logging.StreamHandler() 
ch.setLevel(logging.DEBUG) 
# 定义handler的输出格式 
formatter = logging.Formatter('[%(asctime)s][%(thread)d][%(filename)s][line: %(lineno)d][%(levelname)s] ## %(message)s')
fh.setFormatter(formatter) 
ch.setFormatter(formatter) 
# 给logger添加handler 
logger.addHandler(fh) 
logger.addHandler(ch) 
# 记录一条日志 
logger.info('foorbar')

Concernant la configuration du formateur, la configuration du formateur est utilisé La forme %(1dea5f48fed82ca0e7a5493fa56c2e35)s est le remplacement de mot-clé du dictionnaire. Les mots clés fournis incluent :

Le message enregistré, calculé comme msg % args.
Format Description
%(name)s
Format Description
%(name)s Name of the logger (logging channel).
%(levelno)s Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL).
%(levelname)s Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL').
%(pathname)s Full pathname of the source file where the logging call was issued (if available).
%(filename)s Filename portion of pathname.
%(module)s Module (name portion of filename).
%(funcName)s Name of function containing the logging call.
%(lineno)d Source line number where the logging call was issued (if available).
%(created)f Time when the LogRecord was created (as returned by time.time()).
%(relativeCreated)d Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded.
%(asctime)s Human-readable time when the LogRecord was created. By default this is of the form “2003-07-08 16:49:45,896” (the numbers after the comma are millisecond portion of the time).
%(msecs)d Millisecond portion of the time when the LogRecord was created.
%(thread)d Thread ID (if available).
%(threadName)s Thread name (if available).
%(process)d Process ID (if available).
%(message)s The logged message, computed as msg % args.
Nom de l'enregistreur (canal de journalisation).
%(levelno)s

Niveau de journalisation numérique pour le message (DEBUG
, INFO, AVERTISSEMENT

, ERREUR, CRITIQUE).
%(levelname)s Niveau de journalisation du texte pour le message ('DEBUG'

, 'INFO', 'AVERTISSEMENT', 'ERREUR'

, 'CRITIQUE'

).
%(pathname)s
Chemin complet du fichier source où l'appel de journalisation a été émis ( si disponible).
%(filename)s Partie du nom de fichier du nom du chemin.
%(module)s

Module (nom partie du nom de fichier).
%(funcName)s
Nom de fonction contenant l'appel de journalisation.
%(lineno)d Numéro de la ligne source sur laquelle l'appel de journalisation a été émis (si disponible).
%(created)f

tt>

Heure à laquelle le LogRecord a été créé (telle que renvoyée par time. time()).
%(relativeCreated)d Durée en millisecondes à laquelle le LogRecord a été créé, par rapport à l'heure à laquelle le module de journalisation a été chargé.
%(asctime)s Heure lisible par l'homme à laquelle le LogRecord a été créé. Par défaut, ceci. est de la forme "2003-07-08 16:49:45,896" (les nombres après la virgule correspondent à une milliseconde du temps).
%(msecs)d Milliseconde du temps pendant lequel le LogRecord tt> a été créé.
%(thread)d ID du fil de discussion ( si disponible).
%(threadName)s Nom du fil de discussion (si disponible).
%(process)d Processus ID (si disponible).
%(message)s
Recommandations associées : Exemple de code pour Python pour implémenter le journal de journalisationUne brève discussion sur le problème du chemin du fichier de configuration des journaux Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn