Python logging._srcfile() Examples
The following are 7
code examples of logging._srcfile().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
logging
, or try the search function
.
Example #1
Source File: slogging.py From pyquarkchain with MIT License | 6 votes |
def _inject_into_logger(name, code, namespace=None): # This is a hack to fool the logging module into reporting correct source files. # It determines the actual source of a logging call by inspecting the stack frame's # source file. So we use this `eval(compile())` construct to "inject" our additional # methods into the logging module. if namespace is None: namespace = {} eval( compile( code, logging._srcfile, 'exec' ), namespace ) setattr(logging.Logger, name, namespace[name]) # Add `trace()` level to Logger
Example #2
Source File: scalyr_logging.py From scalyr-agent-2 with Apache License 2.0 | 6 votes |
def set_log_level(level): """Sets the log level that should be used by all AgentLogger instances. This method is thread-safe. @param level: The level, in the logging units by the logging package, such as logging.INFO, logging.DEBUG, etc. You can also use one of the Scalyr debug levels, such as DEBUG_LEVEL_0, DEBUG_LEVEL_1, etc. @type level: int """ __log_manager__.set_log_level(level) # # _srcfile is used when walking the stack to check when we've got the first # caller stack frame. This is copied from the logging/__init__.py #
Example #3
Source File: log.py From st2 with Apache License 2.0 | 6 votes |
def find_caller(stack_info=None): """ Find the stack frame of the caller so that we can note the source file name, line number and function name. Note: This is based on logging/__init__.py:findCaller and modified so it takes into account this file - https://hg.python.org/cpython/file/2.7/Lib/logging/__init__.py#l1233 """ rv = '(unknown file)', 0, '(unknown function)' try: f = logging.currentframe().f_back while hasattr(f, 'f_code'): co = f.f_code filename = os.path.normcase(co.co_filename) if filename in (_srcfile, logging._srcfile): # This line is modified. f = f.f_back continue rv = (filename, f.f_lineno, co.co_name) break except Exception: pass return rv
Example #4
Source File: loguru_patch.py From rssant with BSD 3-Clause "New" or "Revised" License | 5 votes |
def findCaller(stack_info=False): """ Find the stack frame of the caller so that we can note the source file name, line number and function name. """ f = currentframe() # On some versions of IronPython, currentframe() returns None if # IronPython isn't run with -X:Frames. if f is not None: f = f.f_back rv = "(unknown file)", 0, "(unknown function)", None while hasattr(f, "f_code"): co = f.f_code filename = os.path.normcase(co.co_filename) if filename in _srcfile: f = f.f_back continue sinfo = None if stack_info: sio = io.StringIO() sio.write('Stack (most recent call last):\n') traceback.print_stack(f, file=sio) sinfo = sio.getvalue() if sinfo[-1] == '\n': sinfo = sinfo[:-1] sio.close() rv = (co.co_filename, f.f_lineno, co.co_name, sinfo) break try: name = f.f_globals["__name__"] except KeyError: name = rv[3] return (name, *rv)
Example #5
Source File: scalyr_logging.py From scalyr-agent-2 with Apache License 2.0 | 5 votes |
def findCaller(self, stack_info=False, stacklevel=1): """ Find the stack frame of the caller so that we can note the source file name, line number and function name. """ f = currentframe() # On some versions of IronPython, currentframe() returns None if # IronPython isn't run with -X:Frames. if f is not None: f = f.f_back rv = "(unknown file)", 0, "(unknown function)" while hasattr(f, "f_code"): co = f.f_code filename = os.path.normpath(os.path.normcase(co.co_filename)) # noinspection PyProtectedMember if filename == _srcfile or filename == logging._srcfile: f = f.f_back continue rv = (co.co_filename, f.f_lineno, co.co_name, None) break if sys.version_info[0] == 2: # Python 2. return rv[:3] else: # Python 3. return rv
Example #6
Source File: utils.py From py-SMART with GNU Lesser General Public License v2.1 | 5 votes |
def findCaller(self, stack_info=False): """ Overload built-in findCaller method to omit not only logging/__init__.py but also the current file """ f = logging.currentframe() # On some versions of IronPython, currentframe() returns None if # IronPython isn't run with -X:Frames. if f is not None: f = f.f_back rv = "(unknown file)", 0, "(unknown function)", None while hasattr(f, "f_code"): co = f.f_code filename = os.path.normcase(co.co_filename) if filename in (logging._srcfile, _srcfile): f = f.f_back continue sinfo = None if stack_info: sio = io.StringIO() sio.write('Stack (most recent call last):\n') traceback.print_stack(f, file=sio) sinfo = sio.getvalue() if sinfo[-1] == '\n': sinfo = sinfo[:-1] sio.close() rv = (co.co_filename, f.f_lineno, co.co_name, sinfo) break return rv
Example #7
Source File: rp_logging.py From agent-python-pytest with Apache License 2.0 | 4 votes |
def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False, attachment=None): """ Low-level logging routine which creates a LogRecord and then calls. all the handlers of this logger to handle the record :param level: level of log :param msg: message in log body :param args: additional args :param exc_info: system exclusion info :param extra: extra info :param stack_info: stacktrace info :param attachment: attachment file """ sinfo = None if logging._srcfile: # IronPython doesn't track Python frames, so findCaller raises an # exception on some versions of IronPython. We trap it here so that # IronPython can use logging. try: if PY2: # In python2.7 findCaller() don't accept any parameters # and returns 3 elements fn, lno, func = self.findCaller() else: fn, lno, func, sinfo = self.findCaller(stack_info) except ValueError: # pragma: no cover fn, lno, func = '(unknown file)', 0, '(unknown function)' else: fn, lno, func = '(unknown file)', 0, '(unknown function)' if exc_info and not isinstance(exc_info, tuple): exc_info = sys.exc_info() if PY2: # In python2.7 makeRecord() accepts everything but sinfo record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra) else: record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra, sinfo) if not getattr(record, 'attachment', None): record.attachment = attachment self.handle(record)