mirror of https://github.com/python/cpython
logging: Added _logRecordClass, getLogRecordClass, setLogRecordClass to increase flexibility of LogRecord creation.
This commit is contained in:
parent
7cd94b8aa2
commit
062d56b1f0
|
@ -31,7 +31,8 @@ __all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
|
||||||
'StreamHandler', 'WARN', 'WARNING', 'addLevelName', 'basicConfig',
|
'StreamHandler', 'WARN', 'WARNING', 'addLevelName', 'basicConfig',
|
||||||
'captureWarnings', 'critical', 'debug', 'disable', 'error',
|
'captureWarnings', 'critical', 'debug', 'disable', 'error',
|
||||||
'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass',
|
'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass',
|
||||||
'info', 'log', 'makeLogRecord', 'setLoggerClass', 'warn', 'warning']
|
'info', 'log', 'makeLogRecord', 'setLoggerClass', 'warn', 'warning',
|
||||||
|
'getLogRecordClass', 'setLogRecordClass']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import codecs
|
import codecs
|
||||||
|
@ -316,6 +317,25 @@ class LogRecord(object):
|
||||||
msg = msg % self.args
|
msg = msg % self.args
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine which class to use when instantiating log records.
|
||||||
|
#
|
||||||
|
_logRecordClass = LogRecord
|
||||||
|
|
||||||
|
def setLogRecordClass(cls):
|
||||||
|
"""
|
||||||
|
Set the class to be used when instantiating a log record.
|
||||||
|
"""
|
||||||
|
global _logRecordClass
|
||||||
|
_logRecordClass = cls
|
||||||
|
|
||||||
|
def getLogRecordClass():
|
||||||
|
"""
|
||||||
|
Return the class to be used when instantiating a log record.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return _logRecordClass
|
||||||
|
|
||||||
def makeLogRecord(dict):
|
def makeLogRecord(dict):
|
||||||
"""
|
"""
|
||||||
Make a LogRecord whose attributes are defined by the specified dictionary,
|
Make a LogRecord whose attributes are defined by the specified dictionary,
|
||||||
|
@ -323,7 +343,7 @@ def makeLogRecord(dict):
|
||||||
a socket connection (which is sent as a dictionary) into a LogRecord
|
a socket connection (which is sent as a dictionary) into a LogRecord
|
||||||
instance.
|
instance.
|
||||||
"""
|
"""
|
||||||
rv = LogRecord(None, None, "", 0, "", (), None, None)
|
rv = _logRecordClass(None, None, "", 0, "", (), None, None)
|
||||||
rv.__dict__.update(dict)
|
rv.__dict__.update(dict)
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
|
@ -1183,7 +1203,7 @@ class Logger(Filterer):
|
||||||
A factory method which can be overridden in subclasses to create
|
A factory method which can be overridden in subclasses to create
|
||||||
specialized LogRecords.
|
specialized LogRecords.
|
||||||
"""
|
"""
|
||||||
rv = LogRecord(name, level, fn, lno, msg, args, exc_info, func)
|
rv = _logRecordClass(name, level, fn, lno, msg, args, exc_info, func)
|
||||||
if extra is not None:
|
if extra is not None:
|
||||||
for key in extra:
|
for key in extra:
|
||||||
if (key in ["message", "asctime"]) or (key in rv.__dict__):
|
if (key in ["message", "asctime"]) or (key in rv.__dict__):
|
||||||
|
|
|
@ -34,6 +34,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- logging: Added _logRecordClass, getLogRecordClass, setLogRecordClass to
|
||||||
|
increase flexibility of LogRecord creation.
|
||||||
|
|
||||||
- Issue #5117: Case normalization was needed on ntpath.relpath(). And
|
- Issue #5117: Case normalization was needed on ntpath.relpath(). And
|
||||||
fixed root directory issue on posixpath.relpath(). (Ported working fixes
|
fixed root directory issue on posixpath.relpath(). (Ported working fixes
|
||||||
from ntpath)
|
from ntpath)
|
||||||
|
|
Loading…
Reference in New Issue