Вывод приложения Python на сервер Syslog
-
12-11-2019 - |
Вопрос
Я пытаюсь сделать некоторые поиск в Google (зацикливается на каждые 5 минут или около того). Когда он получает удар, я хочу, чтобы он выдвинул результаты на сервер системного журнала.Я очень новый Python, поэтому, пожалуйста, прости невежество, я искал веков и не могу найти ответ на мой вопрос.
Я намерен добавлять несколько запросов, которые ищут разные результаты в зависимости от результатов запроса, который не работает.
WARN "possible hit"
CRITICAL "definatly a hit"
etc
.
Я хотел бы, например, вывод, например: Тип журнала, URL, Дата / время
Ниже приведен код, с которым я играл с до сих пор.Я могу искать и войти в файл, но не как я хотел бы.Я получаю только форматирование времени и даже типом, я не получаю приводу в журнал.И я понятия не имею, как войти в системный журнал.
#!/usr/bin/python
import urllib
import simplejson, logging
query = urllib.urlencode({'q' : 'SEARCHTERMHERE'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' \ % (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
logging.basicConfig(format='%(asctime)s %(message)s', filename='hits.log')
logging.warning ('Likley hit')
print i['url']
#!/usr/bin/python
import urllib
import simplejson
import logging
from logging.handlers import SysLogHandler
query = urllib.urlencode({'q' : 'SEARCHTERMHERE'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' \
% (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
print i['url']
logger = logging.getLogger()
logger.addHandler(SysLogHandler(address=('192.168.0.2', 514), facility=LOG_USER, socktype=socket.SOCK_DGRAM)
logger.addHandler(logging.FileHandler("hits.log"))
logging.warn("likley Hit: " + i['url'])
.
Я получаю: Файл "gog.py", строка 18 logger.addhandler (logging.filehandler ("hits.log")) ^ SyntaxError: Неверный синтаксис
Решение
Вы можете настроить модуль ведения журнала для вывода в Syslog, см. http://docs.cython.org/Library/logging.handlers.html#sysloghandler
Простой пример:
from logging.handlers import SysLogHandler
import logging
logger = logging.getLogger()
logger.addHandler(SysLogHandler('/dev/log'))
logger.addHandler(logging.FileHandler("filename.log"))
logging.warn("Hello world")
.
Приведенные выше журналы к локальному системному журналу с использованием розетки домена Unix.Вы также можете указать имя хоста для входа в системный журнал, используя UDP.Смотрите документы для получения дополнительной информации.