如何在 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)
什么都没发生
我在应用程序中搜索了 WARNING、DEBUG 和 level,但找不到任何内容应该会影响我的记录器
我假设有另一个记录器超过了我的水平(也许是 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',
},
}
我是日志记录新手,很难将日志记录级别设置为调试。我已经创建了自己的记录器
# 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)
什么都没发生
我在应用程序中搜索了 WARNING、DEBUG 和 level,但找不到任何内容应该会影响我的记录器
我假设有另一个记录器超过了我的水平(也许是 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',
},
}