Add logging for the feedback bot.
(imported from commit 4beb3ec69330baf0305ff0509900a5039145f4f4)
This commit is contained in:
parent
8704f6f9d0
commit
43507e6a0a
|
@ -1,11 +1,37 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys
|
import sys
|
||||||
import os
|
|
||||||
import optparse
|
|
||||||
from os import path
|
from os import path
|
||||||
|
import logging
|
||||||
|
|
||||||
sys.path.append(path.join(path.dirname(__file__), '..'))
|
sys.path.append(path.join(path.dirname(__file__), '..'))
|
||||||
import humbug
|
import humbug
|
||||||
|
|
||||||
|
class StreamLogger(object):
|
||||||
|
"""
|
||||||
|
Give a file-like interface to a logger instance.
|
||||||
|
"""
|
||||||
|
def __init__(self, logger, log_level=logging.INFO):
|
||||||
|
self.logger = logger
|
||||||
|
self.log_level = log_level
|
||||||
|
self.buffer = ""
|
||||||
|
|
||||||
|
def write(self, message):
|
||||||
|
self.buffer += message
|
||||||
|
|
||||||
|
if message[-1] == "\n":
|
||||||
|
self.logger.log(self.log_level, self.buffer.rstrip())
|
||||||
|
self.buffer = ""
|
||||||
|
|
||||||
|
logging.basicConfig(filename="/var/log/humbug/feedback-bot.log",
|
||||||
|
level=logging.DEBUG, format="%(asctime)s %(levelname)s\t%(message)s")
|
||||||
|
|
||||||
|
# The API prints to stdout, so capture and format those messages as well.
|
||||||
|
stdout_logger = StreamLogger(logging.getLogger("stdout"), logging.INFO)
|
||||||
|
sys.stdout = stdout_logger
|
||||||
|
|
||||||
|
stderr_logger = StreamLogger(logging.getLogger("stderr"), logging.ERROR)
|
||||||
|
sys.stderr = stderr_logger
|
||||||
|
|
||||||
prod_client = humbug.Client(
|
prod_client = humbug.Client(
|
||||||
email="feedback@humbughq.com",
|
email="feedback@humbughq.com",
|
||||||
api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||||
|
@ -27,5 +53,6 @@ def forward_message(message):
|
||||||
"content": message["content"],
|
"content": message["content"],
|
||||||
}
|
}
|
||||||
staging_client.send_message(forwarded_message)
|
staging_client.send_message(forwarded_message)
|
||||||
|
logging.info("Forwarded feedback from %s" % (message["sender_email"],))
|
||||||
|
|
||||||
prod_client.call_on_each_message(forward_message)
|
prod_client.call_on_each_message(forward_message)
|
||||||
|
|
Loading…
Reference in a new issue