Cet article vous montrera comment démarrer avec le module de journalisation Python pour le développement d'applications avec un minimum de connaissances. Puisque nous n'avons compilé que les connaissances minimales qui peuvent être utilisées immédiatement dans le développement, nous espérons que vous pourrez les utiliser comme point de départ tout en complétant les informations manquantes.
C'est comme une instruction d'impression (mais ne l'utilisez pas de cette façon car la journalisation n'a pas de sens)
import logging
logging.warning( 'Watch out!') # Imprimer un message sur la console
logging.info( 'I said so') # Le niveau de journalisation par défaut est un avertissement, donc rien ne doit être envoyé à la console
logger
logger object
Réglez l'enregistreur à utiliser
Définir le niveau de journalisation (DEBUG, WARNING, etc.)
Décidez si vous souhaitez envoyer le journal à la console ou à un fichier (utilisez des gestionnaires tels que StreamHandler, TimedRotatingFileHandler)
logger = logging.getLogger( 'app')
Construisez un objet enregistreur
Logger est nommé app
root
├──your_app.py
├──logging.conf
└──logging_dev.conf
root
├──app
│└──your_app.py
└──conf
├──logging.conf
└──logging_dev.conf
your_app.py
import logging
# read the conf file
logging.config.fileConfig('logging_dev.conf', disable_existing_loggers=False)
# create logger
logger = logging.getLogger('app')
def main():
try:
1/0 # ZeroDivisionError
# your code goes here
except Exception as e:
logger.exception(e.args)
if __name__ == '__main__':
main()
logging-prod.conf
[loggers]
keys=root,app
[formatters]
keys=default
[handlers]
keys=frotate,default
[formatter_default]
format=%(asctime)s %(levelname)s %(message)s
datefmt=%Y/%m/%d %H:%M:%S
[handler_frotate]
class=handlers.TimedRotatingFileHandler
formatter=default
args=('logs/logger.log', 'W0', 1, 100)
[handler_default]
class=StreamHandler
formatter=default
args=(sys.stdout,)
[logger_app]
level=INFO
handlers=frotate
qualname=app
[logger_root]
level=INFO
handlers=default
logging-dev.conf
[loggers]
keys=root,app
[formatters]
keys=default
[handlers]
keys=frotate,default
[formatter_default]
format=%(asctime)s %(levelname)s %(message)s
datefmt=%Y/%m/%d %H:%M:%S
[handler_frotate]
class=handlers.TimedRotatingFileHandler
formatter=default
args=('logs/logger_dev.log', 'W0', 1, 100)
[handler_default]
class=StreamHandler
formatter=default
args=(sys.stdout,)
[logger_app]
level=NOTSET
handlers=frotate
qualname=app
[logger_root]
level=NOTSET
handlers=default
J'ai brièvement présenté l'utilisation minimale du module de journalisation. Si vous avez besoin de plus de détails, veuillez vous référer aux documents introduits dans [Référence](voir #).
Recommended Posts