2009-11-11 19 views
14

Chcę zapisać wszystkie następujące wyjątki w pliku. Powodem, dla którego tego potrzebuję, jest to, że IDLE dla Pythona 3.1.1 w systemie Ubuntu podnosi wyjątek w calltipps, ale w pobliżu szybko, że nie jest on czytelny. Też potrzebuję tego do testowania. Najlepiej byłoby, gdybym po prostu zadzwonił do funkcji, która zapisuje wszystkie wyjątki do pliku. Dziękuję Ci! ;)zapisz Wyjątki od pliku w pythonie

// edit:

i spojrzał najpierw na bardziej ogólny sposób! abyś nie musiał umieszczać całego kodu w funkcji lub wcięciu. ale teraz to dobrze działało dla mnie. chociaż nadal będę wdzięczny, jeśli znajdziesz sposób!

dziękuję!

+0

Dlaczego nie możesz uruchomić skryptu z wiersza poleceń i obejrzeć tam wyjście? –

+0

przeczytaj ponownie! kiedy próbuję pokazać calltipp z STRG + SPACE, ID (L) E się zepsuje. Chcę wiedzieć, jaki rodzaj wyjątku został podniesiony. – Joschua

+0

Proszę odpowiedzieć na moje pytanie. Dlaczego nie uruchamiasz się z wiersza poleceń? Dlaczego korzystasz z IDLE? Dlaczego nie używasz zwykłego polecenia powłoki? –

Odpowiedz

31

Jeśli masz wygodny main() funkcję (cokolwiek to się nazywa), a następnie można użyć logging module:

import logging 

def main(): 
    raise Exception("Hey!") 

logging.basicConfig(level=logging.DEBUG, filename='/tmp/myapp.log') 

try: 
    main() 
except: 
    logging.exception("Oops:") 

logging.exception wygodnie pobiera aktualny wyjątek i umieszcza dane w dzienniku:

ERROR:root:Oops: 
Traceback (most recent call last): 
    File "C:\foo\foo.py", line 9, in <module> 
    main() 
    File "C:\foo\foo.py", line 4, in main 
    raise Exception("Hey!") 
Exception: Hey!