我正在使用在Docker容器中运行的Django。我认为有些事情我无法理解。有一些 for 语句和条件语句,我想确切地了解出现问题的地方。对于我而言,最简单的方法是是否可以将一些变量输出到控制台。在Django中有可能吗?
类似的东西:
for item in items:
output-to-console("Running item ")+str(item.id)
if item.active:
output-to-console(str(item.id) + " is active")
这可能吗?我知道有调试工具,但是如果存在某些输出到控制台的工具,那么在我看来情况就显得过分了。
答案 0 :(得分:1)
您需要配置记录器。 Here's a simple example。
区别在于您可以使用logging.StreamHandler
作为处理程序的类,以将特定的记录器打印到stdout。这会将每个日志打印到控制台:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '[DJANGO] %(levelname)s %(asctime)s %(module)s '
'%(name)s.%(funcName)s:%(lineno)s: %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
}
},
'loggers': {
'*': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
}
},
}
然后您可以按以下方式使用它:
import logging
logger = logging.getLogger(__name__)
logger.info('something here')
当您遵循容器docker[-compose] logs -f tail==100
的日志时,您将看到记录器打印的所有内容。
答案 1 :(得分:-1)
您可以使用print()
函数来打印所需的值
第一次运行
sudo docker-compose up -d --build
sudo docker-compose logs -f
现在,当您调用相应的文件时,您可以在控制台中看到打印的值。