1

Django アプリでロガーを機能させようとしています。次のようにロガーを呼び出します。

logger = logging.getLogger(__name__)
logger.info("some stuff")

私のviews.pyの関数内。

ログが含まれているはずのファイルが作成されますが、そこには何も書き込まれません。設定は次のとおりです。

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters':{
    'standard': {
        'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
    },
},
'handlers': {
    'file_INFO': {
        'level': 'INFO',
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': os.path.join(BASE_DIR, 'logs/site.logs'),
        'maxBytes': 1024 * 1024 * 15,  # 15MB
        'backupCount': 10,
        'formatter': 'standard',
    },
    'console_INFO': {
        'level': 'INFO',
        'class': 'logging.StreamHandler',
    }
},
'loggers': {
    'INFO': {
        'handlers': ['file_INFO', ],
        'level': 'INFO',
        'propagate': True,
    },
},

}

何か案が ?

ありがとう !

4

1 に答える 1

2

ロガーに 'INFO' という名前を付けましたが、 logger を要求しました__name__。したがって、使用するロガーは必要なものではありません。

最善の策は、次のようにルート ロガーを使用することです。

LOGGING = {
    ...
    'root': {
        'handlers': ['file_INFO', ],
        'level': 'INFO',
    },
}

すべてのロガーはルート ロガーに伝達され (別段の指示がない限り)、90% 以上のアプリケーションではこの設定で十分です。ルート ロガーを使用する場合は、 を実行する必要もありません。getLogger(__name__)単純に でログを記録できますlogging.info("some stuff")

于 2016-11-30T11:14:45.083 に答える