Skip to content

Commit bbba282

Browse files
authored
bpo-43353: Document that logging.getLevelName() accepts string representation of logging level. (GH-24693)
[bpo-43353]() Automerge-Triggered-By: GH:vsajip
1 parent c25910a commit bbba282

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

Doc/library/logging.rst

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,18 +1113,27 @@ functions.
11131113

11141114
.. function:: getLevelName(level)
11151115

1116-
Returns the textual representation of logging level *level*. If the level is one
1117-
of the predefined levels :const:`CRITICAL`, :const:`ERROR`, :const:`WARNING`,
1118-
:const:`INFO` or :const:`DEBUG` then you get the corresponding string. If you
1119-
have associated levels with names using :func:`addLevelName` then the name you
1120-
have associated with *level* is returned. If a numeric value corresponding to one
1121-
of the defined levels is passed in, the corresponding string representation is
1122-
returned. Otherwise, the string 'Level %s' % level is returned.
1116+
Returns the textual or numeric representation of logging level *level*.
1117+
1118+
If *level* is one of the predefined levels :const:`CRITICAL`, :const:`ERROR`,
1119+
:const:`WARNING`, :const:`INFO` or :const:`DEBUG` then you get the
1120+
corresponding string. If you have associated levels with names using
1121+
:func:`addLevelName` then the name you have associated with *level* is
1122+
returned. If a numeric value corresponding to one of the defined levels is
1123+
passed in, the corresponding string representation is returned.
1124+
1125+
The *level* parameter also accepts a string representation of the level such
1126+
as 'INFO'. In such cases, this functions returns the corresponding numeric
1127+
value of the level.
1128+
1129+
If no matching numeric or string value is passed in, the string
1130+
'Level %s' % level is returned.
11231131

11241132
.. note:: Levels are internally integers (as they need to be compared in the
11251133
logging logic). This function is used to convert between an integer level
11261134
and the level name displayed in the formatted log output by means of the
1127-
``%(levelname)s`` format specifier (see :ref:`logrecord-attributes`).
1135+
``%(levelname)s`` format specifier (see :ref:`logrecord-attributes`), and
1136+
vice versa.
11281137

11291138
.. versionchanged:: 3.4
11301139
In Python versions earlier than 3.4, this function could also be passed a

Lib/logging/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@
118118

119119
def getLevelName(level):
120120
"""
121-
Return the textual representation of logging level 'level'.
121+
Return the textual or numeric representation of logging level 'level'.
122122
123123
If the level is one of the predefined levels (CRITICAL, ERROR, WARNING,
124124
INFO, DEBUG) then you get the corresponding string. If you have
@@ -128,7 +128,11 @@ def getLevelName(level):
128128
If a numeric value corresponding to one of the defined levels is passed
129129
in, the corresponding string representation is returned.
130130
131-
Otherwise, the string "Level %s" % level is returned.
131+
If a string representation of the level is passed in, the corresponding
132+
numeric value is returned.
133+
134+
If no matching numeric or string value is passed in, the string
135+
'Level %s' % level is returned.
132136
"""
133137
# See Issues #22386, #27937 and #29220 for why it's this way
134138
result = _levelToName.get(level)

0 commit comments

Comments
 (0)