OLD | NEW |
1 import logging, os, signal, sys, warnings | 1 import logging, os, signal, sys, warnings |
2 | 2 |
3 # primary public APIs | 3 # primary public APIs |
4 | 4 |
5 def configure_logging(logging_config, **kwargs): | 5 def configure_logging(logging_config, **kwargs): |
6 """ | 6 """ |
7 Configure the logging module using the specific configuration object, which | 7 Configure the logging module using the specific configuration object, which |
8 should be an instance of logging_config.LoggingConfig (usually of a | 8 should be an instance of logging_config.LoggingConfig (usually of a |
9 subclass). Any keyword args will be passed to the object's | 9 subclass). Any keyword args will be passed to the object's |
10 configure_logging() method. | 10 configure_logging() method. |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 ### START additional code. | 72 ### START additional code. |
73 if co in _caller_code_to_skip_in_logging_stack: | 73 if co in _caller_code_to_skip_in_logging_stack: |
74 f = f.f_back | 74 f = f.f_back |
75 continue | 75 continue |
76 ### END additional code. | 76 ### END additional code. |
77 rv = (filename, f.f_lineno, co.co_name) | 77 rv = (filename, f.f_lineno, co.co_name) |
78 break | 78 break |
79 return rv | 79 return rv |
80 | 80 |
81 | 81 |
82 if sys.version_info[:2] > (2, 6): | 82 if sys.version_info[:2] > (2, 7): |
83 warnings.warn('This module has not been reviewed for Python %s' % | 83 warnings.warn('This module has not been reviewed for Python %s' % |
84 sys.version) | 84 sys.version) |
85 | 85 |
86 | 86 |
87 # Monkey patch our way around logging's design... | 87 # Monkey patch our way around logging's design... |
88 _original_logger__find_caller = logging.Logger.findCaller | 88 _original_logger__find_caller = logging.Logger.findCaller |
89 logging.Logger.findCaller = _logging_manager_aware_logger__find_caller | 89 logging.Logger.findCaller = _logging_manager_aware_logger__find_caller |
90 | 90 |
91 | 91 |
92 class LoggingFile(object): | 92 class LoggingFile(object): |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 # spawn the initial logging subprocess | 607 # spawn the initial logging subprocess |
608 self._push_context(self._get_context()) | 608 self._push_context(self._get_context()) |
609 | 609 |
610 | 610 |
611 def undo_redirect(self): | 611 def undo_redirect(self): |
612 # len == 1 would mean only start_logging() had been called (but no | 612 # len == 1 would mean only start_logging() had been called (but no |
613 # redirects had occurred) | 613 # redirects had occurred) |
614 if len(self._context_stack) < 2: | 614 if len(self._context_stack) < 2: |
615 raise RuntimeError('No redirects to undo') | 615 raise RuntimeError('No redirects to undo') |
616 super(FdRedirectionLoggingManager, self).undo_redirect() | 616 super(FdRedirectionLoggingManager, self).undo_redirect() |
OLD | NEW |