python日誌記錄模塊有一個通用模式(ex1,ex2),其中每個模塊中爲每個python模塊獲取一個新的日誌記錄器對象。爲什麼要在每個新模塊中獲取新的記錄器對象?
我不是盲目追隨模式的粉絲,所以我想多瞭解一點。
爲什麼要每一個新的模塊中的一個新的記錄器對象?
爲什麼不讓每個人都使用相同的根記錄器並將格式器配置爲%(module)s
?
是否有示例,其中該模式是必要的/需要(即某種性能原因[1],因爲)?
[1] 在一個多線程的python程序中,是否存在某種通過使用多個日誌記錄對象修復的隱藏同步問題?
相關的問題,但可能需要一個新的計算器問題本身:如果您有多個日誌記錄都使用相同的控制檯,流對象,和/或文件處理程序是有一個隱藏的同步問題(只有一個線程可以讀/寫的文件一次)? –
'logging'被定義爲線程安全的,因此記錄器*可以使用鎖寫入其日誌。這意味着在多線程環境中使用是安全的。但是請注意,在unix系統上使用多處理時,這是一個衆所周知的問題:默認情況下'fork'不會複製鎖並在罕見情況下導致死鎖。看[這裏](http://stackoverflow.com/questions/24509650/deadlock-with-logging-multiprocess-multithread-python-script)。 – Bakuriu