Skip to content

Commit 9b4d721

Browse files
authored
Merge pull request #2 from logtail/th/include-extra-attributes-by-default
Release v0.1.2
2 parents 1da33c6 + bb1592e commit 9b4d721

File tree

8 files changed

+15
-11
lines changed

8 files changed

+15
-11
lines changed

logtail/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
from .helpers import LogtailContext, DEFAULT_CONTEXT
66
from .formatter import LogtailFormatter
77

8-
__version__ = '0.1.1'
8+
__version__ = '0.1.2'
99

1010
context = DEFAULT_CONTEXT

logtail/formatter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ def format(self, record):
2121
# which `extra` may be used to substitute arguments (see
2222
# https://docs.python.org/2/library/logging.html#logging.debug ), we
2323
# augment the log frame with all of the entries in extra.
24-
frame = create_frame(record, record.getMessage(), self.context, include_all_extra=True)
24+
frame = create_frame(record, record.getMessage(), self.context, include_extra_attributes=True)
2525
return json.dumps(frame, default=self.json_default, cls=self.json_encoder)

logtail/frame.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from os import path
66
import __main__
77

8-
def create_frame(record, message, context, include_all_extra=False):
8+
def create_frame(record, message, context, include_extra_attributes=False):
99
r = record.__dict__
1010
frame = {}
1111
frame['dt'] = datetime.utcfromtimestamp(r['created']).isoformat()
@@ -32,14 +32,14 @@ def create_frame(record, message, context, include_all_extra=False):
3232
if context.exists():
3333
ctx.update(context.collapse())
3434

35-
events = _parse_custom_events(record, include_all_extra)
35+
events = _parse_custom_events(record, include_extra_attributes)
3636
if events:
3737
frame.update(events)
3838

3939
return frame
4040

4141

42-
def _parse_custom_events(record, include_all_extra):
42+
def _parse_custom_events(record, include_extra_attributes):
4343
default_keys = {
4444
'args', 'asctime', 'created', 'exc_info', 'exc_text', 'pathname',
4545
'funcName', 'levelname', 'levelno', 'lineno', 'module', 'msecs',
@@ -50,7 +50,7 @@ def _parse_custom_events(record, include_all_extra):
5050
for key, val in record.__dict__.items():
5151
if key in default_keys:
5252
continue
53-
if not include_all_extra and not isinstance(val, dict):
53+
if not include_extra_attributes and not isinstance(val, dict):
5454
continue
5555
events[key] = val
5656
return events

logtail/handler.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
DEFAULT_FLUSH_INTERVAL = 1
1515
DEFAULT_RAISE_EXCEPTIONS = False
1616
DEFAULT_DROP_EXTRA_EVENTS = True
17+
DEFAULT_INCLUDE_EXTRA_ATTRIBUTES = True
1718

1819

1920
class LogtailHandler(logging.Handler):
@@ -24,6 +25,7 @@ def __init__(self,
2425
flush_interval=DEFAULT_FLUSH_INTERVAL,
2526
raise_exceptions=DEFAULT_RAISE_EXCEPTIONS,
2627
drop_extra_events=DEFAULT_DROP_EXTRA_EVENTS,
28+
include_extra_attributes=DEFAULT_INCLUDE_EXTRA_ATTRIBUTES,
2729
context=DEFAULT_CONTEXT,
2830
level=logging.NOTSET):
2931
super(LogtailHandler, self).__init__(level=level)
@@ -33,6 +35,7 @@ def __init__(self,
3335
self.pipe = multiprocessing.JoinableQueue(maxsize=buffer_capacity)
3436
self.uploader = Uploader(self.source_token, self.host)
3537
self.drop_extra_events = drop_extra_events
38+
self.include_extra_attributes = include_extra_attributes
3639
self.buffer_capacity = buffer_capacity
3740
self.flush_interval = flush_interval
3841
self.raise_exceptions = raise_exceptions
@@ -54,7 +57,7 @@ def emit(self, record):
5457
if self._is_main_process() and not self.flush_thread.is_alive():
5558
self.flush_thread.start()
5659
message = self.format(record)
57-
frame = create_frame(record, message, self.context)
60+
frame = create_frame(record, message, self.context, include_extra_attributes=self.include_extra_attributes)
5861
try:
5962
self.pipe.put(frame, block=(not self.drop_extra_events))
6063
except queue.Full:

logtail/uploader.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ class Uploader(object):
88
def __init__(self, source_token, host):
99
self.source_token = source_token
1010
self.host = host
11+
self.session = requests.Session()
1112
self.headers = {
1213
'Authorization': 'Bearer %s' % source_token,
1314
'Content-Type': 'application/msgpack',
1415
}
1516

1617
def __call__(self, frame):
1718
data = msgpack.packb(frame, use_bin_type=True)
18-
return requests.post(self.host, data=data, headers=self.headers)
19+
return self.session.post(self.host, data=data, headers=self.headers)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from setuptools import setup
44

55

6-
VERSION = '0.1.1'
6+
VERSION = '0.1.2'
77
ROOT_DIR = os.path.dirname(__file__)
88

99
REQUIREMENTS = [

tests/test_frame.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ def test_create_frame_with_extra(self):
2626
self.assertIn('dict_key', frame)
2727
self.assertNotIn('non_dict_key', frame)
2828

29-
frame = create_frame(log_record, log_record.getMessage(), LogtailContext(), include_all_extra=True)
29+
frame = create_frame(log_record, log_record.getMessage(), LogtailContext(), include_extra_attributes=True)
3030
self.assertIn('non_dict_key', frame)

tests/test_uploader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TestUploader(unittest2.TestCase):
1212
source_token = 'dummy_source_token'
1313
frame = [1, 2, 3]
1414

15-
@mock.patch('logtail.uploader.requests.post')
15+
@mock.patch('logtail.uploader.requests.Session.post')
1616
def test_call(self, post):
1717
def mock_post(endpoint, data=None, headers=None):
1818
# Check that the data is sent to ther correct endpoint

0 commit comments

Comments
 (0)