我有一個瓶子的web應用程序,我試圖去登錄到一個文件。獲取一個類的多個實例使用Python日誌與瓶登錄到一個文件
每個頁面訪問實例化一個新的類,所以我試圖將每個類的記錄器鏈接到模塊記錄器,以便他們都登錄到相同的文件。
兩個問題:
A)這樣會造成文件寫入衝突,如果這些類的多個實例都記錄在同一時間?我想不是,因爲他們通過模塊級記錄器。我是否正確創建了這個?
B)我的logfile.log文件中沒有顯示任何內容。我不確定問題出在哪裏。
from bottle import route, run
import logging
logger = logging.getLogger('server')
fh = logging.FileHandler('./log/logfile.log')
fh.setLevel(logging.ERROR)
logger.addHandler(fh)
class userclass:
def __init__(self,name):
self.logger = logging.getLogger('server.userclass')
self.name = name
try:
raise Exception("Uh oh!")
except Exception as e:
self.logger.error("There's a problem.")
return
@route('/<name>')
def user(name):
newuser = userclass(name)
run(host='localhost', port=8080, debug=True)
Python可能是懶惰的日誌文件,而不是沖洗它。試着優雅地關閉進程並_then_檢查日誌文件 –
試圖停止進程,然後檢查文件...仍然沒有。 –
我在我的系統上試過了,它按預期工作:日誌中包含一個「出現問題。」爲每個匹配請求。我複製並粘貼了問題中的代碼,然後創建了一個「log」子目錄,然後運行腳本。 (Python 2.7,Ubuntu)。我不得不改變8000端口,但我沒有做任何其他改變。 –