Tek bir dosya kullanarak Python Günlüğü (işlev adı, dosya adı, satır numarası)

| | | | | | | | | | | |

Bir uygulamanın nasıl çalıştığını öğrenmeye çalışıyorum. Ve bunun için, günlük çıktısına bir mesaj gönderdiğim satır numarasını (kod içinde) olduğu kadar işlevin adını da günlüğe kaydetmek amacıyla her işlevin gövdesinin ilk satırı olarak hata ayıklama komutları ekliyorum. Son olarak, bu uygulama birçok dosyadan oluştuğu için, uygulamanın kontrol akışını daha iyi anlayabilmem için tek bir günlük dosyası oluşturmak istiyorum.

İşte bildiklerim:

  1. işlev adını almak için function_name.__name__ kullanabilirim, ancak function_name kullanmak istemiyorum (böylece genel bir Log'u hızla kopyalayıp yapıştırabilirim). .info("Message")). Bunun C'de __func__ makrosu kullanılarak yapılabileceğini biliyorum ama python hakkında emin değilim.

  2. dosya adını ve satır numarasını almak için, uygulamamın Python locals() işlevini kullandığını gördüm (ve buna inanıyorum) ama ben bir sözdiziminde tam olarak farkında değil, örneğin: options = "LOG.debug("%(flag)s : %(flag_get)s" % locals()) ve bunu LOG.info gibi kullanarak denedim ("İletim %s" % locals()), {"self": <__main__.Class_name nesnesi 0x22f8cd0>} gibi bir şey üretir. Bununla ilgili herhangi bir girdi lütfen?

  3. Günlüğe kaydetmeyi nasıl kullanacağımı ve bir dosyaya oturum açmak için ona işleyici ekleyeceğimi biliyorum ama kayıt için tek bir dosyanın kullanılıp kullanılamayacağından emin değilim tüm günlük mesajları, projedeki işlev çağrılarının doğru sırayla.

Herhangi bir yardım için çok minnettar olurum.

Teşekkürler!