2011-03-14 48 views
4

我創建了自己的簡單記錄器類,它使用COM互操作來重定向到公司標準的記錄器。我想在我的腳本開始附近創建記錄器實例,然後使用此記錄器允許腳本中的所有模塊集中記錄。在我的Python腳本中,模塊之間共享記錄器實例的習慣用法是什麼?

在所有模塊之間共享這個記錄器實例是否有一種慣用的方式,而沒有專門向每個需要記錄的類的構造函數添加一個記錄器參數?

我應該使用全局變量還是單例,還是有其他建議的方法來在模塊之間分配記錄器?

回答

5

爲什麼不使用Python標準日誌記錄並編寫處理程序來與公司標準日誌記錄系統連接? Python日誌記錄是專門設計的,因此您不需要在代碼的各個層之間傳遞記錄器實例 - Python記錄器本質上已經是單身。

stdlib日誌記錄處理器也很容易編寫 - 第三方處理程序有很多例子。

披露:我是Python標準庫日誌記錄包的維護者。

+0

有沒有我可以看的這個教程或基本示例? – 2011-03-14 15:30:14

+2

你可以看看這個相關答案:http://stackoverflow.com/questions/4722745/logging-between-classes-in-python/4723380#4723380 – 2011-03-14 15:52:50

1

我會使用模塊而不是類,因爲python模塊已經是單例。

幾種方法here

相關問題