Skip to content

Commit 8c0b4b8

Browse files
committed
Supports json-packaging of messages sent to fluentd.
1 parent 49a6182 commit 8c0b4b8

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

fluent/handler.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,14 @@ def __init__(self,
115115
host='localhost',
116116
port=24224,
117117
timeout=3.0,
118+
packager='msgpack',
118119
verbose=False,
119120
buffer_overflow_handler=None):
120121

121122
self.tag = tag
122123
self.sender = sender.FluentSender(tag,
123124
host=host, port=port,
125+
packager=packager,
124126
timeout=timeout, verbose=verbose,
125127
buffer_overflow_handler=buffer_overflow_handler)
126128
logging.Handler.__init__(self)

fluent/sender.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import time
66
import traceback
77

8+
import json
89
import msgpack
910

1011
from fluent.transport import Transport, TransportError
@@ -38,6 +39,7 @@ def __init__(self,
3839
tag,
3940
host='localhost',
4041
port=24224,
42+
packager="msgpack",
4143
bufmax=1 * 1024 * 1024,
4244
timeout=3.0,
4345
verbose=False,
@@ -51,6 +53,7 @@ def __init__(self,
5153
self.timeout = timeout
5254
self.verbose = verbose
5355
self.buffer_overflow_handler = buffer_overflow_handler
56+
self.packager = self.get_packager(packager)
5457

5558
self.pendings = None
5659
self.lock = threading.Lock()
@@ -100,7 +103,16 @@ def _make_packet(self, label, timestamp, data):
100103
packet = (tag, timestamp, data)
101104
if self.verbose:
102105
print(packet)
103-
return msgpack.packb(packet)
106+
return self.packager(packet)
107+
108+
def get_packager(self, name):
109+
if name == 'json':
110+
return json.dumps
111+
112+
if name == 'msgpack':
113+
return msgpack.packb
114+
115+
raise RuntimeError("Unknown packager: {}", name)
104116

105117
def _send(self, bytes_):
106118
self.lock.acquire()

0 commit comments

Comments
 (0)