Dieser Artikel zeigt Ihnen, wie Sie mit dem Python-Protokollierungsmodul für die App-Entwicklung mit minimalem Wissen beginnen. Da wir nur das Mindestwissen zusammengestellt haben, das sofort in der Entwicklung verwendet werden kann, hoffen wir, dass Sie es als Ausgangspunkt verwenden können, während Sie die fehlenden Informationen ergänzen.
Es ist wie eine Druckanweisung (aber verwenden Sie sie nicht so, da die Protokollierung keinen Sinn ergibt).
import logging
logging.warning( 'Watch out!') # Eine Nachricht an die Konsole drucken
logging.info( 'I said so') # Die Standardprotokollstufe ist eine Warnung, daher sollte nichts an die Konsole ausgegeben werden
logger
logger object
Stellen Sie den zu verwendenden Logger ein
Protokollstufe einstellen (DEBUG, WARNUNG usw.)
Entscheiden Sie, ob das Protokoll an die Konsole oder an eine Datei gesendet werden soll (verwenden Sie Handler wie StreamHandler, TimedRotatingFileHandler).
logger = logging.getLogger( 'app')
Erstellen Sie ein Logger-Objekt
Logger heißt 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
Ich habe kurz die Mindestnutzung des Protokollierungsmoduls vorgestellt. Wenn Sie weitere Informationen benötigen, lesen Sie bitte die in [Referenz] eingeführten Dokumente (siehe #).
Recommended Posts