mirror of https://github.com/python/cpython
Closes #12419: Added ident to SysLogHandler.
This commit is contained in:
parent
345a5d7357
commit
2353e35570
|
@ -452,6 +452,15 @@ supports sending logging messages to a remote or local Unix syslog.
|
|||
behaviour) but can be set to ``False`` on a ``SysLogHandler`` instance
|
||||
in order for that instance to *not* append the NUL terminator.
|
||||
|
||||
.. versionchanged:: 3.3
|
||||
(See: :issue:`12419`.) In earlier versions, there was no facility for
|
||||
an "ident" or "tag" prefix to identify the source of the message. This
|
||||
can now be specified using a class-level attribute, defaulting to
|
||||
``""`` to preserve existing behaviour, but which can be overridden on
|
||||
a ``SysLogHandler`` instance in order for that instance to prepend
|
||||
the ident to every message handled. Note that the provided ident must
|
||||
be text, not bytes, and is prepended to the message exactly as is.
|
||||
|
||||
.. method:: encodePriority(facility, priority)
|
||||
|
||||
Encodes the facility and priority into an integer. You can pass in strings
|
||||
|
|
|
@ -769,6 +769,7 @@ class SysLogHandler(logging.Handler):
|
|||
"""
|
||||
return self.priority_map.get(levelName, "warning")
|
||||
|
||||
ident = '' # prepended to all messages
|
||||
append_nul = True # some old syslog daemons expect a NUL terminator
|
||||
|
||||
def emit(self, record):
|
||||
|
@ -779,6 +780,8 @@ class SysLogHandler(logging.Handler):
|
|||
exception information is present, it is NOT sent to the server.
|
||||
"""
|
||||
msg = self.format(record)
|
||||
if self.ident:
|
||||
msg = self.ident + msg
|
||||
if self.append_nul:
|
||||
msg += '\000'
|
||||
"""
|
||||
|
|
|
@ -1482,6 +1482,11 @@ class SysLogHandlerTest(BaseTest):
|
|||
logger.error("sp\xe4m")
|
||||
self.handled.wait()
|
||||
self.assertEqual(self.log_output, b'<11>\xef\xbb\xbfsp\xc3\xa4m')
|
||||
self.handled.clear()
|
||||
self.sl_hdlr.ident = "h\xe4m-"
|
||||
logger.error("sp\xe4m")
|
||||
self.handled.wait()
|
||||
self.assertEqual(self.log_output, b'<11>\xef\xbb\xbfh\xc3\xa4m-sp\xc3\xa4m')
|
||||
|
||||
|
||||
@unittest.skipUnless(threading, 'Threading required for this test.')
|
||||
|
|
Loading…
Reference in New Issue