2017-09-16 19 views
2

私は何を持っていますはPython(v2.7.10)でのログインの非常に基本的な例だと思っています。 stderrへのロギングは問題ではありませんが、ファイルに書き込むように要求すると、空のログファイルになります。iniでファイルへのPythonのログは空のログファイルを作成します

[loggers] 
keys=root 

[handlers] 
keys=file_handler,stream_handler 

[formatters] 
keys=formatter 

[logger_root] 
level=DEBUG 
handlers=stream_handler 

[handler_stream_handler] 
class=StreamHandler 
level=WARNING 
formatter=formatter 
args=(sys.stderr,) 

[handler_file_handler] 
class=FileHandler 
level=DEBUG 
formatter=formatter 
args=('empty.log',) 

[formatter_formatter] 
format=%(asctime)-s %(name)s %(module)s %(funcName)s %(levelname)-8s %(message)s 
datefmt=%Y-%m-%d %H:%M:%S 

そして、ここでは、基本的なテストのPythonスクリプトでこのiniファイルの用途に:私はlevelのようなものを変更することができます

import logging 
from logging import config 

log_config_ini = "log_config.ini" 
logging.config.fileConfig(log_config_ini) 

logger = logging.getLogger() 

logger.critical('This outputs just to the screen') 
logger.debug("This does not write to either screen (expected) nor file (unexpected)") 

注ここで

は私の設定log_config.iniファイルがありますhandler_stream_handlerブロックがすべて正常に動作するため、構成ファイルが正しく読み取られています。

私はまた、logging.config.fileConfig(log_config_ini, disable_existing_loggers = False)のようなものを試しましたが、何も違いはないようですが、空の 'empty.log'ファイルがあります。

非常に基本的で愚かなことがあると確信していますが、私はこの時点でGoogleとPythonのドキュメントを使い果たしたと思います。どんな助けもありがとうございます、事前にありがとうございます!

答えて

2

あなたは、あなたの設定ファイルのルートロガーhandlersfile_handlerを追加する必要があります。

[logger_root] 
level=DEBUG 
handlers=stream_handler, file_handler 
+2

はいGOD MY OH、ありがとうございました!これは完全に機能しました。 – wolfpigeon

関連する問題