2016-04-04 22 views
5

Otrzymuję komunikat o błędzie rejestratora i nie jestem pewien, jak to się stało. Stworzyłem znacznie prostsze programy testowe i zadziałały. Wszelkie przemyślenia, skąd może pochodzić ten błąd?Nie można znaleźć żadnych programów obsługi dla rejestratora "__main__"

Uruchomienie tego programu w python 2.6!

błąd:

No handlers could be found for logger "__main__" 

Kod:

import logging 
import subprocess as sp 

logger = logging.getLogger(__name__) 

def runpig(filename): 
    # does not use logger 
    .... 
    .... 
    return 

def main(): 
    try: 
     runpig(filename) 
    except sp.CalledProcessError as ex: 
     logger.error(ex.message) 
    except: 
     logger.info("Error occured") 

if __name__ == "__main__": 
    main() 

Odpowiedz

7

albo trzeba zadzwonić logging.basicConfig pierwszy lub po prostu zadzwonić logging.info które automatycznie nazywają.

if __name__ == "__main__": 
    logging.info("Begin") 
    main() 

To powinno działać

0

Można ustawić obsługi dla konkretnej ten sposób:

logger = logging.getLogger(__name__) 
handler = logging.StreamHandler() 
formatter = logging.Formatter("%(asctime)s - %(name)s (%(lineno)s) - %(levelname)s: %(message)s", datefmt='%Y.%m.%d %H:%M:%S') 
handler.setFormatter(formatter) 
logger.addHandler(handler) 

https://stackoverflow.com/a/26258712/1907997 https://docs.python.org/2/library/logging.html#logging.Logger.addHandler

lub ustawić podstawową konfigurację dla wszystkich rejestratorów:

logger = logging.getLogger(__name__) 
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s (%(lineno)s) - %(levelname)s: %(message)s", datefmt='%Y.%m.%d %H:%M:%S') 

https://docs.python.org/2/library/logging.html#logging.basicConfig