mirror of
https://github.com/KevinMidboe/transatlanticTorrentExpress.git
synced 2025-10-29 18:00:19 +00:00
Created a custom elastic logging handler.
This commit is contained in:
25
logger.py
25
logger.py
@@ -2,6 +2,7 @@
|
||||
|
||||
import logging
|
||||
import os
|
||||
import requests
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
LOG_FILE = os.path.join(BASE_DIR, 'output.log')
|
||||
@@ -19,7 +20,31 @@ fh.setLevel(logging.DEBUG)
|
||||
ch = logging.StreamHandler()
|
||||
ch.setLevel(logging.ERROR)
|
||||
|
||||
class ESHandler(logging.Handler):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.host = kwargs.get('host')
|
||||
self.port = kwargs.get('port') or 9200
|
||||
|
||||
logging.StreamHandler.__init__(self)
|
||||
|
||||
def emit(self, record):
|
||||
self.format(record)
|
||||
|
||||
indexURL = 'http://{}:{}/transatlantic_torrent_express/_doc'.format(self.host, self.port)
|
||||
doc = {
|
||||
'severity': record.levelname,
|
||||
'message': record.message,
|
||||
'@timestamp': int(record.created*1000)
|
||||
}
|
||||
|
||||
resp = requests.post(indexURL, json=doc, headers={"Content-type": "application/json"})
|
||||
return resp.content
|
||||
|
||||
eh = ESHandler(host='localhost')
|
||||
eh.setLevel(logging.DEBUG)
|
||||
|
||||
formatter = logging.Formatter('%(asctime)s %(levelname)8s | %(message)s')
|
||||
fh.setFormatter(formatter)
|
||||
logger.addHandler(fh)
|
||||
logger.addHandler(ch)
|
||||
logger.addHandler(eh)
|
||||
|
||||
Reference in New Issue
Block a user