1

PythonでUI(User Interface)アプリケーションを開発しました。このアプリケーションは、n人のユーザーが同時にアクセスできるアプリケーション(マルチユーザービジネスアプリケーション)です。

UIビジネスアプリケーションへのアクセス中にすべてのユーザーログ情報を提供する集中型ロガープログラムの構築を手伝ってください。ロガープログラムの結果は、たとえば、ユーザー、エラー、警告、タイムスタンプ、クエリの実行などになります。後でこの情報はデータベースに保存されます(私はdbへの保存に気をつけます)。このために、以下のトライアドを使用しますが、すべてのユーザー ロガー情報を取得することはできません。

 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(...) を呼び出すと、親フィールドと新しいフィールドを含む新しいロガー オブジェクトが返されます。例えば:

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

出力は次のようになります。

エラー:user=user1:スクリプトの開始

これは単純な例にすぎません。

出力をカスタマイズし、メッセージをフィルタリングし、他の出力ターゲット (DB も) を追加できます。シンプルでpythonicです。

http://twiggy.wearpants.org/

于 2012-10-18T17:24:52.913 に答える