En complément de la réponse de phd, en appelant logging.basicConfig()
est une fonction pratique qui vous permettra d'obtenir une fonction par défaut StreamHandler
et un Formatter
. C'est suffisant si vous souhaitez disposer rapidement d'une fonctionnalité de journalisation. Vous pouvez personnaliser son comportement en lui passant basicConfig
certains arguments :
Ajouter des paramètres utiles : horodatage de sortie à côté du message
logger = logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
Cela devrait suffire pour la plupart des besoins ponctuels. Si vous avez besoin de plus de contrôle sur votre configuration, vous pouvez ajouter des comportements plus sophistiqués en définissant vous-même les attributs du logger.
Exemple sophistiqué sans utiliser l'option basicConfig
fonction
import logging
logger = logging.getLogger("mylogger")
streamHandler = logging.StreamHandler()
streamHandler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
streamHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
logger.info("Files copied")
logger.warning("disk quota exceeded")
>> 2017-12-06 11:11:12, 090 - mylogger - INFO Files copied
>> 2017-12-06 11:11:12, 091 - mylogger - WARNING disk quota exceeded
L'étape suivante, dans un environnement plus vaste, consisterait à dériver un nouvel enregistreur à partir de l'enregistreur précédemment créé, afin de conserver le formatage et de maintenir une "hiérarchie des enregistrements".
logger2 = logging.getLogger("mylogger.new")
logger2.info("New Logger info")
>> 2017-12-06 11:11:12, 091 - mylogger.new - New logger info
Une bonne référence est le livre de cuisine de l'exploitation forestière : https://docs.python.org/2/howto/logging-cookbook.html
1 votes
Pour info, une question similaire avec plus de votes positifs. stackoverflow.com/questions/345991/