Найти - Пользователи
Полная версия: Web.py HttpServer
Начало » Web » Web.py HttpServer
1
BION
Проблемка тут одна возникла, т.е. не то чтобы проблема…
Вобщем пишу на программу котоая помимо всего прочего функционала, должна иметь встроеный web сервер для удаленного администрирования. За основу взял сервер web.py(там как извесно шаблоны и прочая хня).
Запускаю его так
web.run(urls, globals(), web.reloader)
Я незнаю, может есть ещё какие способы его запуска, и может вообще этот тестовый сервер не предназначен для серьёзных задач, может не кошерно это, но мне показалось там всё оч миленько.
НО возникла трудность с логами, т.е. сервер лог всех событий выводит в консоль, мне необходимо это перехватить, я ХЗ как. Можно конечно тупо переписать код модуля, но я этого делать не хочу, да и там всего-то, одна строчка(модуль httpserver метод log строка 202):
self.format = '%s - - [%s] "%s %s %s" - %s'

......

def log(self, status, environ):
outfile = environ.get('wsgi.errors', web.debug)
req = environ.get('PATH_INFO', '_')
protocol = environ.get('ACTUAL_SERVER_PROTOCOL', '-')
method = environ.get('REQUEST_METHOD', '-')
host = "%s:%s" % (environ.get('REMOTE_ADDR','-'),
environ.get('REMOTE_PORT','-'))

#@@ It is really bad to extend from
#@@ BaseHTTPRequestHandler just for this method
time = self.log_date_time_string()

print >> outfile, self.format % (host, time, protocol,
method, req, status)
Что делать?
Андрей Светлов
Тебе же русскким по белому практически все написали.

Желает брать outfile из environ ‘wsgi.errors’ - положи туда твой поток
BION
Андрей Светлов
Тебе же русскким по белому практически все написали.

Желает брать outfile из environ ‘wsgi.errors’ - положи туда твой поток
Вносить изменения непосредственно в web.py я не хочу ибо не карачё, должны же быть другие пути…
j2a
BION
Андрей Светлов
Тебе же русскким по белому практически все написали.
Желает брать outfile из environ ‘wsgi.errors’ - положи туда твой поток
Вносить изменения непосредственно в web.py я не хочу ибо не карачё, должны же быть другие пути…
Читай внимательно. Нужно править wsgi environ, а не web.py
BION
j2a
BION
Андрей Светлов
Тебе же русскким по белому практически все написали.
Желает брать outfile из environ ‘wsgi.errors’ - положи туда твой поток
Вносить изменения непосредственно в web.py я не хочу ибо не карачё, должны же быть другие пути…
Читай внимательно. Нужно править wsgi environ, а не web.py
Господа!!!
Словарь
env = {'wsgi.version': (1, 0)
,'wsgi.url_scheme': 'http'
,'wsgi.input': self.rfile
,'wsgi.errors': sys.stderr
........
объявлен в классе WSGIHandler который входит в модуль httpserver.py, который в свою очередь является частью webpy.
Вы предлагаете внести изменения в httpserver.py? Это не вариант. Просто так достать и положить не получится, если я ошибаюсь, пожалст дайте пример.

***

Всё допёр,
продублировал у себя web.httpserver.runsimple как My_runsimple, внес там все необходимые изменения и далее
web.httpserver.runsimple = My_runsimple.
Всё работает, всем спасибо!
slav0nic


sys.stderr = open(“/tmp/log”, “a”, buffering=0)


вставь до вызова web.run()
BION
slav0nic


sys.stderr = open(“/tmp/log”, “a”, buffering=0)


вставь до вызова web.run()
да, но мне необходимо ещё форматировать лог, поэтому остановлюсь на первом варианте. Но всё равно спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB