Wenn Sie normal mit Flask protokollieren, z. B. Beispiel für die Protokollierung von Flask,
app.py
app = Flask(__name__)
app.logger.debug("test message")
Sie können es einfach so machen. Allerdings "fileConfig", das die Einstellungen aus der externen Datei "logging" liest
fileConfig
import logging.config
logging.config.fileConfig("config.ini")
Und dictConfig
kann nicht verwendet werden
dictConfig
import logging.config
import yaml
logging.config.dictConfig(yaml.load(open("config.yaml").read()))
Natürlich wird es "Attributfehler" sein.
app.logger.fileConfig('./config.ini')
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-29-70995f52c865> in <module>()
----> 1 app.logger.fileConfig('./config.ini')
AttributeError: 'DebugLogger' object has no attribute 'fileConfig'
Daher fühlt es sich nutzlos an, wenn Sie es nicht einzeln mit app.logger.addHandler
in Code schreiben.
Lesen Sie grundsätzlich Dokumentation. Das Schreiben von yaml sollte dem Schlüsselwortargument des Konstruktors von "class" (in diesem Fall "logging.StreamHandler" und "logging.TimedRotatingFileHandler") entsprechen, der für "handlers" verwendet wird.
Ich bevorzuge Yaml gegenüber Ini, also benutze ich Yaml
config.yaml
version: 1
formatters:
customFormatter:
format: '[%(asctime)s]%(levelname)s - %(filename)s#%(funcName)s:%(lineno)d: %(message)s'
datefmt: '%Y/%m/%d %H:%M:%S'
loggers:
file:
handlers: [fileRotatingHandler]
level: DEBUG
qualname: file
propagate: no
console:
handlers: [consoleHandler]
level: DEBUG
qualname: console
propagate: no
handlers:
fileRotatingHandler:
formatter: customFormatter
class: logging.handlers.TimedRotatingFileHandler
level: DEBUG
filename: log/debug.log
encoding: utf8
when: 'D'
interval: 1
backupCount: 14
consoleHandler:
class: logging.StreamHandler
level: DEBUG
formatter: customFormatter
stream: ext://sys.stdout
root:
level: DEBUG
handlers: [fileRotatingHandler,consoleHandler]
Wenn Sie die letzte Wurzel vergessen, funktioniert dies nicht Ich blieb stecken, ohne es zu merken
Recommended Posts