1. ホーム
  2. django

[解決済み] Django ランサーバー使用時にデータを印刷する方法

2022-02-19 15:46:02

質問

各ユーザーが作成した選手数の辞書データを持っています。

views.py

def statistics(request):
    users = User.objects.all()
    data = dict()
    for user in users:
        players = Players.objects.filter(created__email=user.email).count()
        if players > 0:
            data[user.email] = players
            logger.info(data)

この辞書をrunserverを使用する際にコンソールに表示するにはどうしたらよいでしょうか? 私は django のロガーを見たことがありますが、完全には理解していません。

どのように解決するのですか?

次のようにします。

import os

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'filters': ['require_debug_true'],
        },
    },
    'loggers': {
        'mylogger': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
            'propagate': True,
        },
    },
}

の時にコンソールに表示されます。 DEBUG = True (通常はrunserverを使用します)。そして、次のようにします。

import logging
logger = logging.getLogger("mylogger")
logger.info("Whatever to log")

参照 ドクター