5

django サイトを Apache にデプロイしましたが、開発マシンでは発生しなかった問題があるため、いくつかの変数を出力して何が起こっているかを確認したいと考えています。

私はこれを行った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 ファイルが表示されません。

誰もそれをデバッグする方法を知っていますか? ありがとう!

4

3 に答える 3

1

現在の作業ディレクトリが Django プロジェクトであると想定していますが、wsgi ファイルで特に変更しない限り、そうである可能性は低いです。

ただし、別のファイルに記録するべきではありません。デフォルトのロギング設定では、/var/log の Apache 独自のログか、そのサブディレクトリにあるサイト固有のログに記録されます。余分な設定を削除し、Django にログを記録させます。

于 2014-03-18T08:15:11.613 に答える
0

さて、ここに私がロギングに使用している小さな設定があります。また、ファイルのアクセス許可を確認する必要があります-www-userディレクトリへの書き込みが許可されていますか?!

settins.py

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',
        },
    }
}

何か.py

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
于 2014-03-18T06:01:15.243 に答える