我寫了一個處理夜間轉換和音頻數據存檔的小型Python腳本。由於沿途出現了一些意想不到的問題(不存在的文件,與數據庫服務器的不可靠連接等),我添加了Python自己的日誌記錄工具來跟蹤遇到的任何問題。什麼是配置Python的logging.FileHandler的正確方法?
問題是,無論腳本從哪裏運行(例如當前工作目錄),都會創建日誌文件,所以我有兩個日誌文件,一個在我的homedir中(當腳本由cron運行時使用)和一個在腳本自己的目錄中(當我調試它時使用)。我更願意將日誌文件和配置文件保存在與腳本相同的目錄中。
我在這裏裝載記錄儀的配置:
logging.config.fileConfig(os.path.join(sys.path[0], 'logger.conf'))
...這是我的logger.conf
相關部分:
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('echi_export.log', 'a',)
絕對路徑做的工作,我是一個有點不願意使用它們。
簡而言之,使用Python的logger
模塊(特別是FileHandler)配置文件日誌記錄的正確方法是什麼?一些真實世界的例子就足夠了。
看起來像你想出來的。 FWIW,我經常發現使用StreamHandler進行stdout更簡單。對於調試,我通常只想在stdout中看到輸出,並且在cron上可以將其輸入到任何需要的文件中(使用絕對路徑來避免混淆)。只是一個偏好問題。 – danny 2012-02-28 15:57:19
在cron中管理標準輸出/標準錯誤看起來確實不那麼複雜。 – Halka 2012-02-29 09:05:26
找到答案後,最好將它作爲答案*並加以接受:這樣,問題就不會像未答覆一樣懸而未決。 – 2012-02-29 12:40:23