8000 Increase conformance to Handler subclassing rules · socrateslee/fluent-logger-python@66ea812 · GitHub
[go: up one dir, main page]

Skip to content 8000

Commit 66ea812

Browse files
committed
Increase conformance to Handler subclassing rules
According to documentation and existing functions: * _close should be close and call Handler close to properly unregister from existing handlers * emit should not re-filter logs, it is handled by the format function. * __init__ should not set a formatter, it is the responsability of the dev to do so. Old code forbid subclassing the formatter and using it.
1 parent ca47ab2 commit 66ea812

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

fluent/handler.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,16 @@ def __init__(self,
6363
self.sender = sender.FluentSender(tag,
6464
host=host, port=port,
6565
timeout=timeout, verbose=verbose)
66-
self.fmt = FluentRecordFormatter()
6766
logging.Handler.__init__(self)
6867

6968
def emit(self, record):
70-
if record.levelno < self.level:
71-
return
72-
data = self.fmt.format(record)
69+
data = self.format(record)
7370
self.sender.emit(None, data)
7471

75-
def _close(self):
76-
self.sender._close()
72+
def close(self):
73+
self.acquire()
74+
try:
75+
self.sender._close()
76+
logging.Handler.close(self)
77+
finally:
78+
self.release()

tests/test_handler.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@ def test_simple(self):
2727

2828
logging.basicConfig(level=logging.INFO)
2929
log = logging.getLogger('fluent.test')
30+
handler.setFormatter(fluent.handler.FluentRecordFormatter())
3031
log.addHandler(handler)
3132
log.info({
3233
'from': 'userA',
3334
'to': 'userB'
3435
})
35-
handler._close()
36+
handler.close()
3637

3738
data = self.get_data()
3839
eq = self.assertEqual

0 commit comments

Comments
 (0)
0