効率を上げるためにマルチプロセッシングを使用するPythonプログラムと、プロセスごとにロガーを作成する関数があります。ロガー機能は、次のようになります。PythonロギングsetLevel()が有効になっていません
import logging
import os
def create_logger(app_name):
"""Create a logging interface"""
# create a logger
if logging in os.environ:
logging_string = os.environ["logging"]
if logging_string == "DEBUG":
logging_level = loggin.DEBUG
else if logging_string == "INFO":
logging_level = logging.INFO
else if logging_string == "WARNING":
logging_level = logging.WARNING
else if logging_string == "ERROR":
logging_level = logging.ERROR
else if logging_string == "CRITICAL":
logging_level = logging.CRITICAL
else:
logging_level = logging.INFO
logger = logging.getLogger(app_name)
logger.setLevel(logging_level)
# Console handler for error output
console_handler = logging.StreamHandler()
console_handler.setLevel(logging_level)
# Formatter to make everything look nice
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
# Add the handlers to the logger
logger.addHandler(console_handler)
return logger
そして、私の処理機能は、次のようになります。しかし、関係なく、ロギング環境変数に設定されているもの、私はまだでデバッグログメッセージを受信しない
import custom_logging
def do_capture(data_dict_access):
"""Process data"""
# Custom logging
LOGGER = custom_logging.create_logger("processor")
LOGGER.debug("Doing stuff...")
コンソール。なぜ私のログレベルが有効にならないのですか?setLevel()を呼び出すと、デバッグメッセージは記録されなくなります。ここで
まず: '他if'があるべき' –
は@HaiVu奇妙な、私はそれから構文エラーが届かないelif'。とにかく変更されましたが、まだ違いはありません – CyberJacob
私は解決策を投稿しましたが、あなたのコードがなぜ機能しないのか解明しようとしています。 –