Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3b84eae

Browse files
committed
Closes #18046: Simplified logging internals relating to levels and their names. Thanks to Alex Gaynor for the patch.
1 parent e08b583 commit 3b84eae

3 files changed

Lines changed: 30 additions & 25 deletions

File tree

Lib/logging/__init__.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -123,20 +123,22 @@ def currentframe():
123123
DEBUG = 10
124124
NOTSET = 0
125125

126-
_levelNames = {
127-
CRITICAL : 'CRITICAL',
128-
ERROR : 'ERROR',
129-
WARNING : 'WARNING',
130-
INFO : 'INFO',
131-
DEBUG : 'DEBUG',
132-
NOTSET : 'NOTSET',
133-
'CRITICAL' : CRITICAL,
134-
'ERROR' : ERROR,
135-
'WARN' : WARNING,
136-
'WARNING' : WARNING,
137-
'INFO' : INFO,
138-
'DEBUG' : DEBUG,
139-
'NOTSET' : NOTSET,
126+
_levelToName = {
127+
CRITICAL: 'CRITICAL',
128+
ERROR: 'ERROR',
129+
WARNING: 'WARNING',
130+
INFO: 'INFO',
131+
DEBUG: 'DEBUG',
132+
NOTSET: 'NOTSET',
133+
}
134+
_nameToLevel = {
135+
'CRITICAL': CRITICAL,
136+
'ERROR': ERROR,
137+
'WARN': WARNING,
138+
'WARNING': WARNING,
139+
'INFO': INFO,
140+
'DEBUG': DEBUG,
141+
'NOTSET': NOTSET,
140142
}
141143

142144
def getLevelName(level):
@@ -153,7 +155,7 @@ def getLevelName(level):
153155
154156
Otherwise, the string "Level %s" % level is returned.
155157
"""
156-
return _levelNames.get(level, ("Level %s" % level))
158+
return _levelToName.get(level, ("Level %s" % level))
157159

158160
def addLevelName(level, levelName):
159161
"""
@@ -163,18 +165,18 @@ def addLevelName(level, levelName):
163165
"""
164166
_acquireLock()
165167
try: #unlikely to cause an exception, but you never know...
166-
_levelNames[level] = levelName
167-
_levelNames[levelName] = level
168+
_levelToName[level] = levelName
169+
_nameToLevel[levelName] = level
168170
finally:
169171
_releaseLock()
170172

171173
def _checkLevel(level):
172174
if isinstance(level, int):
173175
rv = level
174176
elif str(level) == level:
175-
if level not in _levelNames:
177+
if level not in _nameToLevel:
176178
raise ValueError("Unknown level: %r" % level)
177-
rv = _levelNames[level]
179+
rv = _nameToLevel[level]
178180
else:
179181
raise TypeError("Level not an integer or a valid string: %r" % level)
180182
return rv

Lib/logging/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def _install_handlers(cp, formatters):
144144
h = klass(*args)
145145
if "level" in section:
146146
level = section["level"]
147-
h.setLevel(logging._levelNames[level])
147+
h.setLevel(level)
148148
if len(fmt):
149149
h.setFormatter(formatters[fmt])
150150
if issubclass(klass, logging.handlers.MemoryHandler):
@@ -191,7 +191,7 @@ def _install_loggers(cp, handlers, disable_existing):
191191
log = root
192192
if "level" in section:
193193
level = section["level"]
194-
log.setLevel(logging._levelNames[level])
194+
log.setLevel(level)
195195
for h in root.handlers[:]:
196196
root.removeHandler(h)
197197
hlist = section["handlers"]
@@ -237,7 +237,7 @@ def _install_loggers(cp, handlers, disable_existing):
237237
existing.remove(qn)
238238
if "level" in section:
239239
level = section["level"]
240-
logger.setLevel(logging._levelNames[level])
240+
logger.setLevel(level)
241241
for h in logger.handlers[:]:
242242
logger.removeHandler(h)
243243
logger.propagate = propagate

Lib/test/test_logging.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ def setUp(self):
9494
self.saved_handlers = logging._handlers.copy()
9595
self.saved_handler_list = logging._handlerList[:]
9696
self.saved_loggers = saved_loggers = logger_dict.copy()
97-
self.saved_level_names = logging._levelNames.copy()
97+
self.saved_name_to_level = logging._nameToLevel.copy()
98+
self.saved_level_to_name = logging._levelToName.copy()
9899
self.logger_states = logger_states = {}
99100
for name in saved_loggers:
100101
logger_states[name] = getattr(saved_loggers[name],
@@ -136,8 +137,10 @@ def tearDown(self):
136137
self.root_logger.setLevel(self.original_logging_level)
137138
logging._acquireLock()
138139
try:
139-
logging._levelNames.clear()
140-
logging._levelNames.update(self.saved_level_names)
140+
logging._levelToName.clear()
141+
logging._levelToName.update(self.saved_level_to_name)
142+
logging._nameToLevel.clear()
143+
logging._nameToLevel.update(self.saved_name_to_level)
141144
logging._handlers.clear()
142145
logging._handlers.update(self.saved_handlers)
143146
logging._handlerList[:] = self.saved_handler_list

0 commit comments

Comments
 (0)