Bir uygulamanın nasıl çalıştığını öğrenmeye çalışıyorum. Ve bunun için her işlevin gövdesinin ilk satırı olarak hata ayıklama komutları ekliyorum, böylece günlük ismine bir mesaj gönderdiğim satırın numarasını (kod içinde) yanı sıra fonksiyonun ismini günlüğe kaydetme. Son olarak, bu uygulama birçok dosyadan oluştuğundan, uygulamanın kontrol akışını daha iyi anlayabilmek için tek bir kayıt dosyası oluşturmak istiyorum.Python Günlüğe kaydetme (işlev adı, dosya adı, satır numarası) tek bir dosya kullanarak
fonksiyon adı almak için, ben
bildiğim budur tüm fonksiyonların gövdesi). Bununfunction_name.__name__
kullanabilirsiniz ama ben hızla kopyalayıp bir jenerikLog.info("Message")
yapıştırmak diye (FUNCTION_NAME kullanmak istemiyorsanız: Burada__func__
makrosunu kullanarak yapıldığını biliyorum ancak python hakkında emin değilim.options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
ve ben gibi kullanarak denedim: başvurum Pythonlocals()
fonksiyonunu kullanıyor ama örneğin tamamen farkında değilim bir sözdiziminde- dosya adını ve satır numarası almak için, bunu gördük (ve buna inanıyorum)
LOG.info("My message %s" % locals())
{'self': <__main__.Class_name object at 0x22f8cd0>}
gibi bir şey üretir. Bu konuda herhangi bir girdi lütfen? Bir dosyaya oturum açmak için günlüğe kaydetmeyi ve işleyiciyi nasıl ekleyeceğinizi biliyorum, ancak tüm günlük iletilerini projedeki doğru işlev çağrıları sırasına kaydetmek için tek bir dosyanın kullanılıp kullanılamayacağını bilmiyorum.
Herhangi bir yardım için minnettar olurum.
Teşekkürler!
pdb hata ayıklayıcısına 'import pdb; pdb.set_trace() 've daha sonra etkileşimli olarak kod aracılığıyla adım. Bu program akışını izlemenize yardımcı olabilir. –
Harika bir fikir! Sağol Matt. Her seferinde hata ayıklamak zorunda kalmamak için soruda belirtildiği gibi bir günlük almak yararlı olacaktır. Ayrıca, Java için Eclipse (ctrl + tıklama fonksiyonu tanımına götürür) kadar iyi olan bir python için hata ayıklamayı kolaylaştırmak için kullanabileceğim bir IDE'yi biliyor musunuz? – user1126425