[英]Logger.info never outputs
為什么在python中logger.info("print something")
不輸出。 我見過以前問過的問題,但不存在解決方案。 我不想用logger.debug
或logger.warning
看到的文字。
只需logger.info應該打印文本,否則這有什么用?
logging.conf文件如下
[loggers]
keys=root
[handlers]
keys=stream
[formatters]
keys=formatter
[logger_root]
level=INFO
handlers=stream
[handler_stream]
class=StreamHandler
level=INFO
formatter=formatter
args=(sys.stderr,)
[formatter_formatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
訪問記錄器的演示代碼:
import logging
logger = logging.getLogger()
if __name__ == '__main__':
logger.info("logger")
print("print")
輸出僅print
,而不是logger
。 因此logger.info
無法正常工作。
默認情況下,根記錄器(您說logger.info
時使用的記錄器)的級別設置為WARN
。
您可以執行以下操作:
logging.basicConfig(level=logging.INFO)
或logging.getLogger().setLevel(logging.INFO)
似乎您沒有加載配置文件。 您應該添加以下內容:
logging.config.fileConfig('path_to_logging.conf')
在logger = logging.getLogger()
因為現在您正在使用默認的WARNING
級別。
編輯:為了使用logging.config,您也必須導入它:
import logging.config
因此完整的代碼應為:
import logging
import logging.config
logging.config.fileConfig('path_to_logging.conf')
logger = logging.getLogger()
if __name__ == '__main__':
logger.info("logger")
print("print")
上面的代碼,帶有以下logging.conf
(與我相同,除了我刪除了sentry
部件):
[loggers]
keys=root
[handlers]
keys=stream
[formatters]
keys=formatter
[logger_root]
level=INFO
handlers=stream
[handler_stream]
class=StreamHandler
level=INFO
formatter=formatter
args=(sys.stderr,)
[formatter_formatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
確實有效:
$ ./test_script3.py
2016-05-23 15:37:40,437 - root - INFO - logger
print
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.