2012-10-17 27 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/