2014-12-10 15 views
8

Ich habe die Protokollierung in meinem gesamten Python-Paket mit einer logconfig.ini-Datei eingerichtet.Keine Handler für den Logger gefunden __main__

[loggers] 
keys=extracts,root 

[formatters] 
keys=simple,detailed 

[handlers] 
keys=file_handler 

[formatter_simple] 
format=%(module)s - %(levelname)s - %(message)s 
datefmt=%Y-%m-%d %H:%M:%S 

[formatter_detailed] 
format=%(asctime)s %(name)s:%(lineno)s %(levelname)s %(message)s 
datefmt=%Y-%m-%d %H:%M:%S 

[handler_file_handler] 
class=logging.handlers.RotatingFileHandler 
level=DEBUG 
formatter=detailed 
args=('/ebs/logs/foo.log', 'a', 100000000, 3) 

[logger_extracts] 
level=DEBUG 
handlers=file_handler 
propagate=1 
qualname=extracts 

[logger_root] 
level=NOTSET 
handlers= 

Aber immer, wenn ich meine Anwendung ausführen, bekomme ich die folgende Warnmeldung in Aufforderung

No handlers found for logger __main__ 

Wie kann ich dieses Problem beheben?

Vielen Dank.

+0

Wie rufen Sie den Logger einen Handler zum Stamm Logger befestigen? Ich meine nach "Import-Logging", wie erstellt man einen Logger? Fügen Sie nach Möglichkeit ein Codebeispiel ein. Ich glaube nicht, dass es etwas mit der Logconfig zu tun hat. – helloV

+0

LOG = logging.getLogger (__ name__) – Zihs

Antwort

12

Sie haben logging.basicConfig() aufzurufen, zuerst:

Logging HOWTO

Der Aufruf von basicConfig() vor Anrufe zu debuggen kommen sollte(), info() usw. Wie es ist als einmalige einfache Konfiguration vorgesehen Einrichtung, nur der erste Anruf wird tatsächlich alles tun: nachfolgende Anrufe sind effektiv No-Ops.

Oder alle logging.info ('Logger für starten ...'), die automatisch logging.basicConfig() aufrufen. So etwas wie:

import logging 
logging.info('Starting logger for...') # or call logging.basicConfig() 
LOG = logging.getLogger(name) 

der Grund des Moduls Autor für dieses Verhalten ist here

+0

Ich rufe logging.config.fileConfig (Logfile) in meiner __init__.py Datei – Zihs

+0

Ich möchte nicht BasicConfig aufrufen. Ich denke, dass es möglicherweise mit meiner logconfig.ini-Datei zu tun hat, aber ich kann nicht herausfinden, wo – Zihs

1

ich meinen Fehler gefunden. Es stellt sich heraus, dass der Root-Logger für main verwendet wird. Ich muss genauso so,

[logger_root] 
level=NOTSET 
handlers=file_handler