2011-10-19 6 views
1

wxpython txt ctrlだけでなく、ファイルにもログインできますか?ファイルとwxpython txt ctrlにログインするpython

背景私はwxpython GUIベースのアプリケーションでpythonのテストファイルを列挙し、それらを実行します。 http://broadcoder.blogspot.com/2009/10/redirecting-python-logging-to.htmlの助けを借りて、私はpythonロギングメッセージをtxtctrlにリダイレクトすることができました。しかし、私はまた、ロギングメッセージをログファイルにリダイレクトすることも望みます。 私はこのような私のTESTFILESをインポートします。私は単にインポートログを使用して、私のログメッセージがTXT CTRLにリダイレクトされます私のTESTFILESのそれぞれにおいて

 logging.info('Started') 
    testid = __import__(str) 
    reload(testid) 

    testOut = testid.main() 

。ただし、テストログメッセージも、ファイル名に基づいてログファイルにリダイレクトされることをお勧めします。ログメッセージを両方にリダイレクトするにはどうすればよいですか? テストファイルでlogging.basicConfigを使用すると、メッセージは引き続きテキストctrlにのみ送られます。私がインポートするMy TestGUI.pyは、5つのpythonテストファイルを表しています。私はとValueErrorを得る

 logger = logging.getLogger('') 
     fh = logging.FileHandler("log.html",mode='w') 
     formatter = logging.Formatter('%(message)s') 
     fh.setFormatter(formatter) 
     logger.addHandler(fh) 
     a= 5 
     b= 6 

     logging.info('a=5') 
     logging.info('b=6') 
     c= a+b 
     logging.info('adding b and c') 
     fh.close() 

:I私のテストファイルのファイルでは、私は単に私がこのような何かを私のテストファイルでは、私のTestGUI.pyファイル内のIセットアップながら

self.logr = logging.getLogger('') 
    self.logr.setLevel(logging.INFO) 
    hdlr = WxLog(self.log) 
    hdlr.setFormatter(logging.Formatter('%(message)s ')) 
    self.logr.addHandler(hdlr) 

をロガーをインポートログを使用しますこのテストを複数回実行すると、クローズドファイルに対する/ O操作が実行されます。

+1

一つロガーは、複数のハンドラを持つことができます!あなたはこれを簡単に達成することができます。 – shahjapan

+0

Duhはこれについて忘れました – user974168

+0

@shahjapan:あなたは答えとして答えを投稿してください。その後、OPはそれを受け入れて、残りの人がこの質問に答えてくれたことを知ります。それを読んで。はい、それは短い答えですが、それは答えです。 – tom10

答えて

5

1つのロガーに複数のハンドラを設定できます。あなたはこれを簡単に達成することができます。

import logging 
logger = logging.getLogger('myapp') 
hdlr = logging.FileHandler('var/myapp.log') 
hdlr2 = logging.FileHandler('var/myapp2.log') 
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 
hdlr.setFormatter(formatter) 
hdlr2.setFormatter(formatter) 
logger.addHandler(hdlr) 
logger.addHandler(hdlr2) 
logger.setLevel(logging.INFO) 
logger.info('a log message') 
関連する問題