如何使用apache在django生产服务器上获取所有打印件

时间:2015-09-23 14:04:51

标签: django logging printing production

请告诉我如何在本地运行./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",
    },
}

}

2 个答案:

答案 0 :(得分:1)

Django可以作为没有master的多线程服务器运行,因此没有简单的方法将所有std输出连接在一起。日志记录是最简单和最好的解决方案,您可以定义许多日志处理程序,甚至将所有日志发送到某个套接字,其中一些简单的日志记录服务器将驻留,它将捕获所有日志并将其打印到控制台中。在屏幕上运行该服务器将允许您连接到它并查看它的最后消息。

答案 1 :(得分:1)

如果您在生产设置中运行应用程序,即APACHE服务器,您可以在apache配置中配置的目标文件中找到打印件。 例如:' ErrorLog /var/log/httpd-error.log'