0

単純な印刷から適切なログに切り替えようとしています。

2つの異なるロガーを使用したいと思います。1つは画面に情報を表示し、もう1つはファイルに表示します。

私の問題は、ハンドラーレベルをDEBUGに設定しても、メッセージはWARNINGからのみ表示されることです。

これが私のコードのサンプルです:

def setup_logger(self):

    """

    Configures our logger to save error messages

    """

    # create logger for  'facemovie'

    self.my_logger = logging.getLogger('FileLog')

    # create file handler which logs even debug messages

    fh = logging.FileHandler('log/fm.log')

    fh.setLevel(logging.DEBUG)

    # create console handler with a higher log level

    self.console_logger = logging.getLogger('ConsoleLog')

    ch = logging.StreamHandler()

    ch.setLevel(logging.DEBUG)



    # create formatter and add it to the handlers

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    fh.setFormatter(formatter)

    #ch.setFormatter(formatter)



    ##Start logging in file

    self.my_logger.info("######")



    # add the handlers to the logger

    self.my_logger.addHandler(fh)

    self.console_logger.addHandler(ch)



    # DEBUG

    self.console_logger.info("MFCKR")

    self.console_logger.debug("MFCKR")

    self.console_logger.warning("MFCKR")

    self.console_logger.error("MFCKR")

    self.console_logger.critical("MFCKR")

    self.my_logger.info("MFCKR")

    self.my_logger.debug("MFCKR")

    self.my_logger.warning("MFCKR")

    self.my_logger.error("MFCKR")

    self.my_logger.critical("MFCKR")

そして出力:

[jll@jll-VirtualBox:~/Documents/FaceMovie]$ python Facemoviefier.py -i data/inputs/samples -o data/
Selected profile is : frontal_face
MFCKR
MFCKR
MFCKR
Starting Application !
Output #0, avi, to 'data/output.avi':
    Stream #0.0: Video: mpeg4, yuv420p, 652x498, q=2-31, 20780 kb/s, 90k tbn, 5 tbc
FaceMovie exited successfully!
[jll@jll-VirtualBox:~/Documents/FaceMovie]$ cat log/fm.log 
2012-07-15 22:23:24,303 - FileLog - WARNING - MFCKR
2012-07-15 22:23:24,303 - FileLog - ERROR - MFCKR
2012-07-15 22:23:24,303 - FileLog - CRITICAL - MFCKR

ドキュメントを赤くして、Webで同様のエラーを検索しましたが、見つかりませんでした。

ロガーがDEBUGとINFOを表示しない理由についてのアイデアはありますか?

どうも !

4

1 に答える 1

2

ここで答えを見つけました

なぜ私が前にそれを見つけなかったのか分かりません。

ハンドラーも設定されている場合でも、ロガーレベル全体を設定する必要があります。私はロガーのレベルを設定していませんでした。この場合、デフォルトは警告です。

問題が解決しました !

于 2012-07-15T20:37:41.120 に答える