django/python 内で使用しているロギング機能にかなり奇妙な問題があります。django 1.3 にアップグレードしてから、ロギングが機能しなくなりました。ロギングレベルとsettings.pyファイルの「debug=」設定が関係しているようです。
1) INFO メッセージと debug=False をログに記録すると、ログが記録されず、ファイルが追加されません。2) WARNING メッセージと debug=False をログに記録すると、ログは希望どおりに完全に機能し、ファイルが追加されます 3) INFO メッセージと debug=True をログに記録すると、ログは機能しているように見え、ファイルが追加されます。
debug=False で INFO メッセージをログに記録するにはどうすればよいですか? それはdjango 1.3の前に働いていました...トリックを行う不思議な設定がどこかにありますか? その下にサンプルコードがあります:
ビュー.py:
import logging
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s',
filename='/opt/general.log',
filemode='a')
def create_log_file(filename, log_name, level=logging.INFO):
handler = logging.handlers.TimedRotatingFileHandler(filename, 'midnight', 7, backupCount=10)
handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s', '%a, %Y-%m-%d %H:%M:%S')
handler.setFormatter(formatter)
logging.getLogger(log_name).addHandler(handler)
create_log_file('/opt/test.log', 'testlog')
logger_test = logging.getLogger('testlog')
logger_test.info('testing the logging functionality')
このコードでは、settings.py ファイルでデバッグが False に設定されている Django 1.3 でロギングが機能しません。私がこのようにすべきとき:
logger_test.warning('testing the logging functionality')
debug が False に設定されている場合、これは完全に機能します。レベル DEBUG および INFO はロギングではありませんが、WARNING、ERROR、および CRITICAL はその役割を果たしています...
誰にもアイデアはありますか?