128

を使用してイベントをログに記録するlogging.infoと、Pythonターミナルに表示されません。

import logging
logging.info('I am info')  # no output

対照的に、ログに記録されたイベントlogging.warnはターミナルに表示されます。

import logging
logging.warn('I am warning')  # outputs "I am warning"

logging.infoコンソールに印刷するためにできる環境レベルの変更はありますか?各Pythonファイルに変更を加えないようにしたい。

4

6 に答える 6

193

ルートロガーは常にデフォルトでWARNINGレベルになります。電話してみてください

logging.getLogger().setLevel(logging.INFO)

そして、あなたは元気でなければなりません。

于 2012-07-18T19:19:29.303 に答える
45

@ztyxが言ったように、デフォルトのロガーレベルは警告です。あなたはそれをより低いレベルに設定する必要があります

あなたはlogging.basicConfigを使用してロガーレベルを設定することによってそれを行うことができます:

logging.basicConfig(level=logging.DEBUG)
于 2018-10-11T13:43:00.200 に答える
23

上記の解決策は私にはうまくいきませんでしたが、ここのコードはうまくいきました:

# set up logging to file
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')
# define a Handler which writes INFO messages or higher to the sys.stderr
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# add the handler to the root logger
logging.getLogger('').addHandler(console)

(読みやすくするためにコードの一部を省略しました)

于 2018-11-27T09:17:55.143 に答える
6

これはうまくいくでしょう

import logging

logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

logger.info('its working')
于 2021-06-18T05:51:44.883 に答える
0

を使用しているabsl.logging場合、同等のコマンドは

from absl import logging
logging.set_verbosity(logging.INFO)
于 2021-10-12T21:58:02.220 に答える
0

動作するモジュールレベルのロガーに最低限必要なコードは何ですか?私は実験をしました(Pythonバージョン3.8.6で)。

要点は次のとおりです。

  • logging.basicConfig()必要です(ただし、指定するlevel=...必要はありません)
  • ルートロガーを設定する必要があります。logging.getLogger().setLevel(...)

したがって、最小限の作業例は次のとおりです。

# in library/module code
import logging
lg = logging.getLogger('x.y.z')

# in application code
logging.basicConfig()
logging.getLogger().setLevel(logging.INFO)  # configure root logger
lg.info("hi")  # this should print now

実験は次のとおりです。

In [1]: import logging

In [2]: lg = logging.getLogger('x.y.z')

In [3]: lg.info(1)

In [4]: logging.basicConfig()

In [5]: lg.info(1)

In [6]: logging.basicConfig(level=logging.INFO)

In [7]: lg.info(1)

In [8]: logging.basicConfig()

In [9]: logging.getLogger().setLevel(logging.INFO)

In [10]: lg.info(1)
INFO:x.y.z:1
于 2021-12-12T07:01:56.480 に答える