From 859eeb48ddc6dffaa36624500d27d12f8fd8414b Mon Sep 17 00:00:00 2001 From: Ruben van Eldik Date: Thu, 14 Dec 2023 09:43:59 +0100 Subject: [PATCH 1/3] Fix linting errors --- logtail/frame.py | 4 ++-- logtail/handler.py | 1 - tests/test_flusher.py | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/logtail/frame.py b/logtail/frame.py index 11738f2..e739f2b 100644 --- a/logtail/frame.py +++ b/logtail/frame.py @@ -14,7 +14,7 @@ def create_frame(record, message, context, include_extra_attributes=False): # Python 3 only solution if we ever drop Python 2.7 # frame['dt'] = datetime.utcfromtimestamp(r['created']).replace(tzinfo=timezone.utc).isoformat() frame['dt'] = "{}+00:00".format(datetime.utcfromtimestamp(r['created']).isoformat()) - frame['level'] = level = _levelname(r['levelname']) + frame['level'] = _levelname(r['levelname']) frame['severity'] = int(r['levelno'] / 10) frame['message'] = message frame['context'] = ctx = {} @@ -48,7 +48,7 @@ def _parse_custom_events(record, include_extra_attributes): default_keys = { 'args', 'asctime', 'created', 'exc_info', 'exc_text', 'pathname', 'funcName', 'levelname', 'levelno', 'lineno', 'module', 'msecs', - 'message', 'msg', 'name', 'pathname', 'process', 'processName', + 'message', 'msg', 'name', 'process', 'processName', 'relativeCreated', 'thread', 'threadName' } events = {} diff --git a/logtail/handler.py b/logtail/handler.py index f76ebfa..89946c9 100644 --- a/logtail/handler.py +++ b/logtail/handler.py @@ -68,7 +68,6 @@ def emit(self, record): # Only raised when not blocking, which means that extra events # should be dropped. self.dropcount += 1 - pass except Exception as e: if self.raise_exceptions: raise e diff --git a/tests/test_flusher.py b/tests/test_flusher.py index 32130b3..bfb3ce6 100644 --- a/tests/test_flusher.py +++ b/tests/test_flusher.py @@ -25,12 +25,11 @@ def _setup_worker(self, uploader=None): return pipe, uploader, fw def test_is_thread(self): - pipe, uploader, fw = self._setup_worker() + _, _, fw = self._setup_worker() self.assertIsInstance(fw, threading.Thread) def test_flushes_when_queue_is_full(self): first_frame = list(range(self.buffer_capacity)) - second_frame = list(range(self.buffer_capacity, self.buffer_capacity * 2)) self.calls = 0 self.flush_interval = 1000 From 35bf1571af0a839ba87dcea1e95e96c3046e2a61 Mon Sep 17 00:00:00 2001 From: Ruben van Eldik Date: Thu, 14 Dec 2023 15:12:49 +0100 Subject: [PATCH 2/3] Use the non-deprecated datetime.fromtimestamp method --- logtail/frame.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logtail/frame.py b/logtail/frame.py index e739f2b..064007d 100644 --- a/logtail/frame.py +++ b/logtail/frame.py @@ -12,8 +12,8 @@ def create_frame(record, message, context, include_extra_attributes=False): del r["request"] frame = {} # Python 3 only solution if we ever drop Python 2.7 - # frame['dt'] = datetime.utcfromtimestamp(r['created']).replace(tzinfo=timezone.utc).isoformat() - frame['dt'] = "{}+00:00".format(datetime.utcfromtimestamp(r['created']).isoformat()) + # frame['dt'] = datetime.fromtimestamp(r['created'], UTC).isoformat() + frame['dt'] = "{}+00:00".format(datetime.fromtimestamp(r['created'], UTC).isoformat()) frame['level'] = _levelname(r['levelname']) frame['severity'] = int(r['levelno'] / 10) frame['message'] = message From cfb484e5606c6212b6e69cd5acf15a5550b3b648 Mon Sep 17 00:00:00 2001 From: Petr Heinz Date: Fri, 12 Jan 2024 15:32:01 +0100 Subject: [PATCH 3/3] fix timezone.utc usage and formatting --- logtail/frame.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/logtail/frame.py b/logtail/frame.py index c70000c..90fe89d 100644 --- a/logtail/frame.py +++ b/logtail/frame.py @@ -1,6 +1,6 @@ # coding: utf-8 from __future__ import print_function, unicode_literals -from datetime import datetime +from datetime import datetime, timezone from os import path import __main__ @@ -11,9 +11,7 @@ def create_frame(record, message, context, include_extra_attributes=False): if "request" in r and not isinstance(r["request"], (dict, list, bool, int, float, str)) : del r["request"] frame = {} - # Python 3 only solution if we ever drop Python 2.7 - # frame['dt'] = datetime.fromtimestamp(r['created'], UTC).isoformat() - frame['dt'] = "{}+00:00".format(datetime.fromtimestamp(r['created'], UTC).isoformat()) + frame['dt'] = datetime.fromtimestamp(r['created'], timezone.utc).isoformat() frame['level'] = _levelname(r['levelname']) frame['severity'] = int(r['levelno'] / 10) frame['message'] = message