Найти - Пользователи
Полная версия: Проблема с Remote logging with Python logging через HTTPHandler
Начало » Network » Проблема с Remote logging with Python logging через HTTPHandler
1
safari
Доброго времени суток.

Необходимо записать логи в файл удалённо.
Имеется следующий код

import os
import time
import logging
import logging.handlers
import httplib2
import urllib2
from logging.handlers import HTTPHandler


# create logger
logger = logging.getLogger("simple_example")
#logger.setLevel(logging.DEBUG)

# create handler
http_handler = logging.handlers.HTTPHandler("ip-adress:80","/var/www/public/log",method="POST")

# create formatter
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

# add formatter
http_handler.setFormatter(formatter)

# add http_handler to logger
logger.addHandler(http_handler)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

time.sleep(20)
http_handler.close()
Отрабатывает, но ничего не пишет в файл.
В логах даже не вижу попыток соединиться.

Python 2.6.6
python-httplib2
usrlib2 нет

В чём может быть дело?
Ed
firewall?
Я тупо запустил в одной консоли python -m SimpleHTTPServer 8000 и исправил в вашем скрипте ip-adress:80 на localhost:8000 и прекрасно увидел попытки отправить запрос.
safari
firewall отключен.
Ed
запустил в одной консоли python -m SimpleHTTPServer 8000 и исправил в вашем скрипте ip-adress:80 на localhost:8000 и прекрасно увидел попытки отправить запрос.
таким способом я тоже вижу попытки, но когда отправляю на порт 80 и включаю apache в режиме debug никаких признаков жизни.
Lexander
Здесь

logging.handlers.HTTPHandler(“ip-adress:80”,“/var/www/public/log”,method=“POST”)

вторым параметром должен быть URL, а не файл, куда должен писаться лог:

logging.handlers.HTTPHandler(“ip-adress:80”,“logscript”,method=“POST”)

Запросы принимает скрипт по указанному URL и уже скрипт пишет лог или делаем что вам нужно.

Проверьте, чтобы к http://ip-adress:80/logscript можно было обратиться из браузера.
Ed
safari
firewall отключен.

таким способом я тоже вижу попытки, но когда отправляю на порт 80 и включаю apache в режиме debug никаких признаков жизни.
Хм. Ну давайте запустим тоже самое на 80м порту, делов-то:

первая консоль:
$ sudo python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 …

вторая консоль:
ваш скрипт с http_handler = logging.handlers.HTTPHandler(“localhost:80”,“/var/www/public/log”,method=“POST”)

Вывод на первой консоли:
$ sudo python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...
localhost - - [24/Jun/2011 14:48:16] code 501, message Unsupported method ('POST')
localhost - - [24/Jun/2011 14:48:16] "POST /var/www/public/log HTTP/1.0" 501 -
localhost - - [24/Jun/2011 14:48:16] code 501, message Unsupported method ('POST')
localhost - - [24/Jun/2011 14:48:16] "POST /var/www/public/log HTTP/1.0" 501 -
localhost - - [24/Jun/2011 14:48:16] code 501, message Unsupported method ('POST')
localhost - - [24/Jun/2011 14:48:16] "POST /var/www/public/log HTTP/1.0" 501 -
Настраивайте ваш апач, короче. Logging тут ни причем.
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