2015-09-23 1 views
-1

Пожалуйста, расскажите, как я могу получить все отпечатки, которые я вижу при запуске локального сервера ./manage.py. Я не хочу использовать регистратор. В идеале я хотел бы подключиться к моему manage.py и посмотреть, что сейчас для меня печатает сервер. Я пробовал django print information on production server без успеха. Я знаю, что я кот только хвост -f logfile, и я увижу последние строки, но я не мог найти, где находятся мои отпечатки. Пожалуйста помоги. Вот мое протоколирование конфигурация:Как получить все отпечатки на сервере производства django с apache

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

Почему вы не хотите использовать регистрацию? Простейшее решение и позволит вам делать именно то, что вам нужно. – GwynBleidD

ответ

1

Django может работать как многопоточный сервер без хозяина, так что не существует простой способа присоединиться все выходные зЬх вместе. Журналирование - это самое простое и лучшее решение здесь, вы можете определить множество обработчиков журналов, даже отправить все журналы в какой-то сокет, где будет находиться какой-то простой сервер ведения журнала, который поймает все журналы и распечатает их на консоли. Запуск этого сервера на экране позволит вам подключиться к нему и увидеть последние сообщения от него.

1

Если вы запустите приложение в производственной установке, то есть на сервере APACHE, вы можете найти отпечатки в файле, расположенном в пункте назначения, который вы настроили в конфигурации apache. Например: 'ErrorLog /var/log/httpd-error.log'

+0

Спасибо! Это действительно помогает. –

+0

Все остальные ребята просто проголосуют, но вы даете мне решение, которое мне нужно. –

+0

@DmitryYudin, если вы предоставили небольшой контекст и обоснование в вопросе, вы можете получить более конструктивные ответы от «других парней». ;) – ostergaard

Смежные вопросы