本文整理汇总了Python中logging._srcfile方法的典型用法代码示例。如果您正苦于以下问题:Python logging._srcfile方法的具体用法?Python logging._srcfile怎么用?Python logging._srcfile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类logging
的用法示例。
在下文中一共展示了logging._srcfile方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _inject_into_logger
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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
示例2: set_log_level
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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
#
示例3: find_caller
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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
示例4: findCaller
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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)
示例5: findCaller
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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
示例6: findCaller
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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
示例7: _log
# 需要导入模块: import logging [as 别名]
# 或者: from logging import _srcfile [as 别名]
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)