Próbuję napisać serwer, który rejestruje wyjątki zarówno do konsoli, jak i do pliku. Wyciągnąłem kod z książki kucharskiej. Oto ona:Moduł rejestrujący python nie zapisuje niczego do pliku
logger = logging.getLogger('server_logger')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler('server.log')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
# add the handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
Ten kod loguje się idealnie do konsoli, ale nic nie jest rejestrowane w pliku. Plik jest tworzony, ale nic nie jest do niego zapisywane. Próbowałem zamknąć program obsługi, ale to nic nie robi. Ani go nie spłukuje. Przeszukałem Internet, ale najwyraźniej jestem jedynym z tym problemem. Czy ktokolwiek ma pojęcie o problemie? Dziękuję za odpowiedzi.
Jakiego polecenia używasz do logowania? Czy dzwonisz po prostu 'logging.debug()'? – Leopd
Używam logging.error() – thePurpleMonkey
Brak repro dla mnie. Twój kod działa zgodnie z oczekiwaniami. – wim