Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过在Apache上登录调试django?_Python_Django_Apache_Django Debug Toolbar - Fatal编程技术网

Python 如何通过在Apache上登录调试django?

Python 如何通过在Apache上登录调试django?,python,django,apache,django-debug-toolbar,Python,Django,Apache,Django Debug Toolbar,我已经在Apache上部署了我的django站点,但在我的开发机器上没有出现一个问题,所以我想打印一些变量,看看发生了什么 我尝试使用python日志模块,在这里我做到了: import os, logging FILE = os.getcwd() logging.basicConfig(filename=os.path.join(FILE,'log.txt'),level=logging.DEBUG) logging.debug('Write') 在我的开发机器上,django项目的根目

我已经在Apache上部署了我的django站点,但在我的开发机器上没有出现一个问题,所以我想打印一些变量,看看发生了什么

我尝试使用python日志模块,在这里我做到了:

import os, logging
FILE = os.getcwd()
logging.basicConfig(filename=os.path.join(FILE,'log.txt'),level=logging.DEBUG)  
logging.debug('Write')
在我的开发机器上,django项目的根目录中可能会显示log.txt。然而,当我做同样的事情时,我的服务器上相应的目录中没有显示log.txt文件


有人知道如何调试它吗?谢谢

好吧,这是我用来记录日志的一个小配置。您还应该检查您的文件权限-是否允许
www-user
写入目录

settins.py 什么,派克
您需要完整的stacktrace来调试web应用程序的未知异常。通常,您还需要检查每个堆栈的上下文变量以找到根本原因。日志可能会帮助您统计异常,但在生产服务器上进行调试效率很低

为跟踪和调试python错误提供了一个非常好的UI。它是开源的。这是jacobian(django的共同创建者)去年Pycon谈话中必备的django软件包之一。使用它


您假设当前的工作目录是Django项目,但除非您在wsgi文件中特别更改了它,否则不太可能是这样


但是,您不应该登录到单独的文件。默认的日志设置将登录到Apache自己的log in/var/log或其子目录中特定于站点的日志中。删除额外的配置,让Django登录。

Mmm。检查日志文件所在目录的权限。
LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'standard': {
            'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt': "%d/%b/%Y %H:%M:%S"
        },
    },
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'django.utils.log.NullHandler',
        },
        'logfile': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': BASE_DIR + "/logfile",
            'maxBytes': 50000,
            'backupCount': 2,
            'formatter': 'standard',
        },
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'standard'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'WARN',
        },
        'django.db.backends': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        '': {
            'handlers': ['console', 'logfile'],
            'level': 'DEBUG',
        },
    }
}
import logging
try:  # Python 2.7+
    from logging import NullHandler
except ImportError:
    class NullHandler(logging.Handler):
        def emit(self, record):
            pass

log = logging.getLogger(__name__)
log.addHandler(NullHandler())

def demo(foo):
    if foo not bar:
        log.debug('doh!')
    return