2015-07-01 14 views
5

Utknąłem na tym przez ostatnią godzinę. Podłączyłem logowanie do mojego gui tkinter, ale nie mogłem go uruchomić. Następnie zacząłem usuwać części, dopóki nie dostałem się do przykładu z nagimi kościami w samych dokumentach Pythona i to nie zadziała. W tym momencie nie mam nic do usunięcia.logowanie do Pythona nie zapisywanie do pliku

Kod jest w następujący sposób:

import logging 

LOG_FILENAME = r'logging_example.out' 


logging.basicConfig(filename=LOG_FILENAME ,level=logging.DEBUG) 
logging.debug('This message should go to the log file') 
logging.info('So should this') 
logging.warning('And this, too') 

f = open(LOG_FILENAME, 'rt') 
try: 
    body = f.read() 
finally: 
    f.close() 

print('FILE:') 
print (body) 

Ostrzeżenie jest drukowane na standardowe wyjście, ale plik nie jest generowany. Uruchomiłem Pythona 3.4, x64 na Windows 7. Jest to dystrybucja anacondas, więc działa w Ipythonie wewnątrz spydera.

Myślę, że to powinno działać

+0

Działa to podczas uruchamiania programu python.exe z powłoki. Musi być czymś w twoim środowisku. –

Odpowiedz

6

Jak zauważył Jonas Byström ta działa poza ipython. Wygląda na to, że Ipython konfiguruje procedurę obsługi dzienników, zanim otrzymam taką możliwość. Ponadto, basicConfig nie zrobi niczego, jeśli przewodnik jest już obecny. Aby więc działało w Ipythonie, należy wykonać jedną z trzech czynności: 1) Dodaj nową obsługę, LUB 2) przeładuj logowanie, LUB 3) usuń istniejące procedury obsługi. Zrobiłem numer 2 poniżej.

import logging 
from imp import reload 
reload(logging) 
LOG_FILENAME = r'logging_example.out' 


logging.basicConfig(filename=LOG_FILENAME ,level=logging.DEBUG) 
logging.debug('This message should go to the log file') 
logging.info('So should this') 
logging.warning('And this, too') 

f = open(LOG_FILENAME, 'rt') 
try: 
    body = f.read() 
finally: 
    f.close() 

print('FILE:') 
print (body) 

Zobacz theese uzyskać więcej informacji: Logging in ipython; More on the same

+0

Preferuję również opcję 2, ponieważ jest to proste i pozwala mi mieć większą kontrolę nad wszystkimi zachowaniami dotyczącymi rejestrowania. +1 – DaveL17