1

我用python开发了UI(用户界面)应用程序,这个应用程序可以被n个用户同时访问(多用户业务应用程序)。

请帮助我构建集中式记录器程序,在访问 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.')

请建议正确的代码。

4

1 回答 1

1

我推荐你 Twiggy 包(BSD 许可证),它使这项工作变得容易。您可以创建一个“主”记录器对象,当您调用方法 fields(...) 时,它会返回一个新的记录器对象,其中包含字段父项和新字段。例如:

我的日志文件

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")

输出将是

错误:用户=用户1:启动脚本

这只是一个简单的例子。

您可以自定义输出、过滤消息并添加其他输出目标(也是数据库)。它很简单而且很pythonic。

http://twiggy.wearpants.org/

于 2012-10-18T17:24:52.913 回答