2012-10-17 66 views
1

我在python中開發了UI(用戶界面)應用程序,該應用程序可以同時由n個用戶訪問(多用戶業務應用程序)。集中跟蹤多用戶python中的用戶日誌應用

請幫我建立這給所有用戶的日誌信息,而訪問UI,業務應用,記錄器程序結果應該是像如集中記錄程序:用戶,錯誤,警告,時間戳,查詢等發射之後這些信息會被存儲在數據庫(我會照顧存儲到數據庫)。 對於這個我下面的黑社會,但沒有運氣得到所有的用戶記錄器信息。

import logging 
logging.basicConfig(level=logging.DEBUG, 
        format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', 
        datefmt='%m-%d %H:%M', 
        filename='/temp/myapp.log', 
        filemode='w') 
console.setLevel(logging.INFO) 
logger1.debug('Quick zephyrs blow, vexing daft Jim.') 
logger1.info('How quickly daft jumping zebras vex.') 
logger2.warning('Jail zesty vixen who grabbed pay from quack.') 
logger2.error('The five boxing wizards jump quickly.') 

請指教正確的代碼。

回答

1

我推薦你Twiggy包(BSD許可證),它使這項工作變得簡單。 您可以創建一個「主」記錄器對象,當您調用方法字段(...) 時,它會返回一個新的記錄器對象,其中包含字段parent和新字段。 例如:

mylog.py

import twiggy as twg 

twg.quickSetup() 

logs = { 
    'user1': twg.log.fields(user='user1'), 
    'user2': twg.log.fields(user='user2') 
} 

在其他文件中,你可以調用這個方法此時,相應的記錄:

import mylog 

mylog.logs['user1'].error("Start script") 

輸出將是

ERROR:user=user1:Start script

這只是一個簡單的例子。

您可以自定義輸出,過濾消息並添加其他輸出目標(也是數據庫)。 這很簡單,pythonic。

http://twiggy.wearpants.org/