如何在 Django 应用程序中设置 DEBUG 级别

How can I set the DEBUG level in a Django application

我是日志记录新手,很难将日志记录级别设置为调试。我已经创建了自己的记录器

# logger.py

from pathlib import Path
import logging

# Create a custom logger
logger = logging.getLogger(__name__)
logger.propagate = False
logging.basicConfig(level=logging.DEBUG)

# Create handlers
c_handler = logging.StreamHandler()
f_handler = logging.FileHandler('my_log_file.log')
c_handler.setLevel(logging.DEBUG)
f_handler.setLevel(logging.DEBUG)

# Create formatters and add them to handlers
c_format = logging.Formatter('myapp: %(message)s')
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
f_handler.setFormatter(f_format)

# Add handlers to the logger
logger.addHandler(c_handler)
logger.addHandler(f_handler)

def log(frame, obj):
    """Create log message and return the object."""
    path = Path(frame[0][1])
    module = path.stem
    line = frame[0][2]
    message_text = f'{obj} <{module}> {line}'
    logger.warning(message_text)
    return obj

我可以使用

在我的应用程序中创建日志消息
log(inspect.stack(), f'Something happened here {myobj.name}: {myobj.value}')

但它不会创建消息,除非我使用警告级别

    logger.warning(message_text)

在记录器中。如果我把它改成

    logger.debug(message_text)

什么都没发生

我在应用程序中搜索了 WARNINGDEBUGlevel,但找不到任何内容应该会影响我的记录器

我假设有另一个记录器超过了我的水平(也许是 Django)

有人能帮忙吗?

按照 Willem Van Onsem I added a LOGGING 部分给 Django 的 system.py 的提示,它现在可以正常工作了

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'INFO',
    },
}