diff --git a/source/logger.py b/source/logger.py index 6384572..51184df 100644 --- a/source/logger.py +++ b/source/logger.py @@ -7,12 +7,13 @@ import uuid from datetime import datetime, date import urllib.request -from utils import getConfig +from utils import getConfig, timezoneOffset config = getConfig() LOGGER_NAME = config['logger']['name'] esHost = config['elastic']['host'] esPort = config['elastic']['port'] +systemTimezone = timezoneOffset() class ESHandler(logging.Handler): def __init__(self, *args, **kwargs): @@ -25,7 +26,8 @@ class ESHandler(logging.Handler): def emit(self, record): self.format(record) - timestamp = datetime.fromtimestamp(record.created).strftime('%Y-%m-%dT%H:%M:%S.%f+02:00') + datetimeTemplate = '%Y-%m-%dT%H:%M:%S.%f{}'.format(systemTimezone) + timestamp = datetime.fromtimestamp(record.created).strftime(datetimeTemplate) indexURL = 'http://{}:{}/{}-{}/_doc'.format(self.host, self.port, LOGGER_NAME, self.date.strftime('%Y.%m.%d')) diff --git a/source/utils.py b/source/utils.py index 652da88..83efe27 100644 --- a/source/utils.py +++ b/source/utils.py @@ -1,5 +1,6 @@ #!/bin/usr/python3 import os +import subprocess import yaml def loadYaml(filePath): @@ -20,3 +21,22 @@ def getConfig(): return loadYaml(path) +def timezoneOffset(): + localTimezoneCommand = 'date +%z' + process = subprocess.Popen(localTimezoneCommand.split(), stdout=subprocess.PIPE) + output, error = process.communicate() + + fallbackTimezone = '+0100' + if error: + print('Error when trying to fetch timezone: {}. Returning fallbacktimezone: {}.'.format(error, fallbackTimezone)) + return fallbackTimezone + + try: + output = output.decode("utf-8") + if '\n' in output: + output = output.replace('\n', '') + return output or fallbackTimezone + except Error as error: + print('Error occured while decoding output from system timezone: {}'.format(error)) + return fallbackTimezone +