Ich verwende bereits eine grundlegende Protokollierungskonfiguration, bei der alle Nachrichten über alle Module hinweg in einer einzigen Datei gespeichert werden. Jetzt brauche ich jedoch eine komplexere Lösung:
- Zwei Dateien: Die erste bleibt gleich.
- Die zweite Datei sollte ein benutzerdefiniertes Format haben.
Ich habe die Dokumente für das Modul gelesen, aber sie sind im Moment für mich sehr komplex. Holzfäller, Handler ...
Kurz gesagt:
So melden Sie sich in Python 3 bei zwei Dateien an:
import logging
# ...
logging.file1.info('Write this to file 1')
logging.file2.info('Write this to file 2')
python
python-3.x
logging
logfile
Marw
quelle
quelle
logging.WARNING
, daher ist es klarer, wennLogger.setLevel(logging.WARNING)
aufgerufen wird.logger_1
Datei nicht in eine Protokolldatei ausgegeben? Ich habe eingestelltlogger_1.error('error foo')
, aber immer noch nicht funktioniertlogger_1.info('message_1')
Zeile in sehen möchtensimplefile_1.log
, müssen Sie entweder die Ebene auf "INFO
Verwenden"logger_1.setLevel(logging.INFO)
oder "Verwenden" einstellenlogger_1.error('message_1')
. EineINFO
Nachricht wird anscheinend nicht protokolliert, wenn die EbeneWARNING
aktiviert ist. Dies ist die Standardeinstellung.def setup_logger(logger_name, log_file, level=logging.INFO): l = logging.getLogger(logger_name) formatter = logging.Formatter('%(message)s') fileHandler = logging.FileHandler(log_file, mode='w') fileHandler.setFormatter(formatter) streamHandler = logging.StreamHandler() streamHandler.setFormatter(formatter) l.setLevel(level) l.addHandler(fileHandler) l.addHandler(streamHandler) setup_logger('log1', txtName+"txt") setup_logger('log2', txtName+"small.txt") logger_1 = logging.getLogger('log1') logger_2 = logging.getLogger('log2') logger_1.info('111messasage 1') logger_2.info('222ersaror foo')
quelle