Merhaba, hayırlı akşamlar dilerim.
Python da program çalışırken herhangi bir kod ile karşılaştığı zaman konsol ekranına, idle ekranına bunu yazdırıyor.
Ben programın karşılaşıp kendi otomatik bir şekilde bu hataları txt dosyasına kayıt etmesini daha sonradan bu hataları görmeyi ve okumayı istiyorum. Bunu yapabilmemizin bir yolu var mıdır?
1 Beğeni
stdout ı değiştirebilirsin veya
bu linkte olduğu gibi
try:
#code
except Exception as var:
yapısını kullanıp varı dosyaya yazdırabilirsin
1 Beğeni
mesela
ben ekrana bu kodu yazdığım zaman
try:
print(2/0)
except Exception as e:
print(e)
ekrana
division by zero
yazıyor
1 Beğeni
Aşağıdaki linkte bu konu işlenmiş. Üstelik siz de mesaj göndermişsiniz.
Bir kaç ekleme yapayım. Programda karşılaşacak hataları dilerseniz log dosyasına da ekleyebilirsiniz. Aşağıdaki kod hata vermeden çalışıyormuş gibi görünebilir. Ancak hata log.log dosyasına yazılır.
import sys
import logging
logging.basicConfig(
filename="log.log",
format="- %(levelname)s - %(asctime)s - %(message)s",
level=logging.INFO,
datefmt="%d.%m.%Y %H:%M:%S"
)
logging.info(msg="Session started.")
def excepthook(exc_type, exc_value, exc_traceback):
logging.error(
…
2 Beğeni
@EkremDincel in bahsettiği logging modülünü kullanmak daha iyi bu çözümden
1 Beğeni
Bunu unutmuşum, tekrar döndüm baktım. Bahsetmek istediğimi de buydu zaten. Teşekkürler.
Hatalar sys.stderr
’e yazılıyor, yönlendirilebilir.
Söylendiği gibi logging modülü daha kullanışlı olur.
1 Beğeni