Wie verwende ich die Protokollierung mit pythons fileConfig und konfiguriere den Dateinamen der Logdatei?
Ich habe eine logging-Konfigurationsdatei für das logging-Konsole und eine Datei mit verschiedenen Formaten und Ebenen. In meinem python-Skript kann ich laden Sie diese Konfiguration und im Grunde Konsole und Datei-Ausgabe sind ok.
Ich den Namen der Datei in der config-Datei wie unten gezeigt.
Ist es möglich, dass die Datei-Namen in das python-Skript selbst?
python-code:
# set up logging
logging.config.fileConfig(loginipath)
logger = logging.getLogger('sLogger')
# log something
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
logging config file:
[loggers]
keys=root,sLogger
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=fileFormatter,consoleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_sLogger]
level=DEBUG
handlers=consoleHandler,fileHandler
qualname=sLogger
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=WARNING
formatter=consoleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('logfile.log',)
[formatter_fileFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
[formatter_consoleFormatter]
format=%(levelname)s - %(message)s
datefmt=
InformationsquelleAutor der Frage Micha | 2012-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie Ihre
handler_fileHandler
Abschnitt etwa so:und fügen Sie dann eine
defaults
argument der fileConfig nennenInformationsquelleAutor der Antwort Navin
Beiden Handler für mich gearbeitet:
(1)
(2)
nach der Lektüre von Beispielen auf https://docs.python.org/2/library/logging.config.html
InformationsquelleAutor der Antwort MG2
Versuchen Sie anrufen
logging.config.dictConfig()
nachfileConfig()
und nur die Einstellung der Dateinamen.InformationsquelleAutor der Antwort John Zwinck