Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
b4a0809a
Commit
b4a0809a
authored
Sep 20, 2010
by
Vinay Sajip
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
logging: Add hasHandlers() method to Logger.
parent
f1d633c3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
5 deletions
+28
-5
Lib/logging/__init__.py
Lib/logging/__init__.py
+22
-0
Lib/test/test_logging.py
Lib/test/test_logging.py
+6
-5
No files found.
Lib/logging/__init__.py
View file @
b4a0809a
...
...
@@ -1240,6 +1240,28 @@ class Logger(Filterer):
finally
:
hdlr
.
release
()
def
hasHandlers
(
self
):
"""
See if this logger has any handlers configured.
Loop through all handlers for this logger and its parents in the
logger hierarchy. Return True if a handler was found, else False.
Stop searching up the hierarchy whenever a logger with the "propagate"
attribute set to zero is found - that will be the last logger which
is checked for the existence of handlers.
"""
c
=
self
rv
=
False
while
c
:
if
c
.
handlers
:
rv
=
True
break
if
not
c
.
propagate
:
break
else
:
c
=
c
.
parent
return
rv
def
callHandlers
(
self
,
record
):
"""
Pass a record to all relevant handlers.
...
...
Lib/test/test_logging.py
View file @
b4a0809a
...
...
@@ -75,8 +75,8 @@ class BaseTest(unittest.TestCase):
# Set two unused loggers: one non-ASCII and one Unicode.
# This is to test correct operation when sorting existing
# loggers in the configuration code. See issue 8201.
logging.getLogger("
\
xab
\
xd7
\
xbb
")
logging.getLogger("
\
u013f
\
u00d6
\
u0047
")
self.logger1 =
logging.getLogger("
\
xab
\
xd7
\
xbb
")
self.logger2 =
logging.getLogger("
\
u013f
\
u00d6
\
u0047
")
self.root_logger = logging.getLogger("")
self.original_logging_level = self.root_logger.getEffectiveLevel()
...
...
@@ -86,7 +86,11 @@ class BaseTest(unittest.TestCase):
self.root_hdlr = logging.StreamHandler(self.stream)
self.root_formatter = logging.Formatter(self.log_format)
self.root_hdlr.setFormatter(self.root_formatter)
self.assertFalse(self.logger1.hasHandlers())
self.assertFalse(self.logger2.hasHandlers())
self.root_logger.addHandler(self.root_hdlr)
self.assertTrue(self.logger1.hasHandlers())
self.assertTrue(self.logger2.hasHandlers())
def tearDown(self):
"""Remove our logging stream, and restore the original logging
...
...
@@ -1844,7 +1848,6 @@ class RotatingFileHandlerTest(BaseFileTest):
self.assertLogFile(self.fn + "
.
2
")
self.assertFalse(os.path.exists(self.fn + "
.
3
"))
class TimedRotatingFileHandlerTest(BaseFileTest):
# test methods added below
pass
...
...
@@ -1865,8 +1868,6 @@ for when, exp in (('S', 1),
self.assertEquals(exp, rh.computeRollover(0.0))
setattr(TimedRotatingFileHandlerTest, "
test_compute_rollover_
%
s
" % when, test_compute_rollover)
# Set the locale to the platform-dependent default. I have no idea
# why the test does this, but in any case we save the current locale
# first and restore it at the end.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment