请告诉我如何在本地运行./manage.py runserver时获取所有打印件。我不想使用记录器。理想情况下,我想连接到我的manage.py,看看服务器正在为我打印什么。 我试过django print information on production server没有成功。 我知道我只是尾巴-f logfile,我会看到最后一行,但我找不到我的打印位置。请帮忙。 这是我的日志配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue'
}
},
'formatters': {
'main_formatter': {
'format': '%(levelname)s:%(name)s: %(message)s '
'(%(asctime)s; %(filename)s:%(lineno)d)',
'datefmt': "%Y-%m-%d %H:%M:%S",
},
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'console':{
#'level': 'DEBUG',
'level': 'ERROR',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'main_formatter',
},
'production_file':{
'level' : 'INFO',
'class' : 'logging.handlers.RotatingFileHandler',
'filename' : 'logs/main.log',
'maxBytes': 1024*1024*5, # 5 MB
'backupCount' : 7,
'formatter': 'main_formatter',
'filters': ['require_debug_false'],
},
'debug_file':{
'level' : 'DEBUG',
'class' : 'logging.handlers.RotatingFileHandler',
'filename' : 'logs/main_debug.log',
'maxBytes': 1024*1024*5, # 5 MB
'backupCount' : 7,
'formatter': 'main_formatter',
'filters': ['require_debug_true'],
},
'null': {
"class": 'django.utils.log.NullHandler',
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins', 'console'],
'level': 'ERROR',
'propagate': True,
},
'django': {
'handlers': ['null', ],
},
'py.warnings': {
'handlers': ['null', ],
},
'': {
'handlers': ['console', 'production_file', 'debug_file'],
'level': "DEBUG",
},
}
}
答案 0 :(得分:1)
Django可以作为没有master的多线程服务器运行,因此没有简单的方法将所有std输出连接在一起。日志记录是最简单和最好的解决方案,您可以定义许多日志处理程序,甚至将所有日志发送到某个套接字,其中一些简单的日志记录服务器将驻留,它将捕获所有日志并将其打印到控制台中。在屏幕上运行该服务器将允许您连接到它并查看它的最后消息。
答案 1 :(得分:1)
如果您在生产设置中运行应用程序,即APACHE服务器,您可以在apache配置中配置的目标文件中找到打印件。 例如:' ErrorLog /var/log/httpd-error.log'