API: Decorators: LogWrap class and logwrap function.¶
-
class
logwrap.
LogWrap
[source]¶ Log function calls and return values.
New in version 2.2.0.
-
__init__
(*, log=None, log_level=logging.DEBUG, exc_level=logging.ERROR, max_indent=20, blacklisted_names=None, blacklisted_exceptions=None, log_call_args=True, log_call_args_on_exc=True, log_traceback=True, log_result_obj=True)[source]¶ Parameters: - log (logging.Logger | None) – logger object for decorator, by default trying to use logger from target module. Fallback: ‘logwrap’
- log_level (int) – log level for successful calls
- exc_level (int) – log level for exception cases
- max_indent (int) – maximum indent before classic repr() call.
- blacklisted_names (Iterable[str] | None) – Blacklisted argument names. Arguments with this names will be skipped in log.
- blacklisted_exceptions (Iterable[type[Exception]] | None) – list of exception, which should be re-raised without producing traceback and text log record.
- log_call_args (bool) – log call arguments before executing wrapped function.
- log_call_args_on_exc (bool) – log call arguments if exception raised.
- log_traceback (bool) – log traceback on exception in addition to failure info
- log_result_obj (bool) – log result of function call.
Changed in version 3.3.0: Extract func from log and do not use Union.
Changed in version 3.3.0: Deprecation of *args
Changed in version 4.0.0: Drop of *args
Changed in version 5.1.0: log_traceback parameter
Changed in version 8.0.0: pick up logger from target module if possible
Changed in version 9.0.0: Only LogWrap instance act as decorator
-
pre_process_param
(self, arg)[source]¶ Process parameter for the future logging.
Parameters: arg (BoundParameter) – bound parameter Returns: value, value override for logging or None if argument should not be logged. Return type: BoundParameter | tuple[BoundParameter, typing.Any] | None Override this method if some modifications required for parameter value before logging
New in version 3.3.0.
-
post_process_param
(self, arg, arg_repr)[source]¶ Process parameter for the future logging.
Parameters: - arg (BoundParameter) – bound parameter
- arg_repr (str) – repr for value
Returns: processed repr for value
Return type: str
Override this method if some modifications required for result of repr() over parameter
New in version 3.3.0.
Note
Attributes/properties names the same as argument names and changes the same fields.
-
log_level
¶
-
exc_level
¶
-
max_indent
¶
-
blacklisted_names
¶ list[str]
, modified via mutability
-
blacklisted_exceptions
¶ list[type[Exception]]
, modified via mutability
-
log_call_args
¶
-
log_call_args_on_exc
¶
-
log_traceback
¶
-
log_result_obj
¶
-
-
logwrap.
logwrap
(func=None, *, log=None, log_level=logging.DEBUG, exc_level=logging.ERROR, max_indent=20, blacklisted_names=None, blacklisted_exceptions=None, log_call_args=True, log_call_args_on_exc=True, log_traceback=True, log_result_obj=True)[source]¶ Log function calls and return values.
Parameters: - func (None | Callable) – function to wrap
- log (logging.Logger | None) – logger object for decorator, by default trying to use logger from target module. Fallback: ‘logwrap’
- log_level (int) – log level for successful calls
- exc_level (int) – log level for exception cases
- max_indent (int) – maximum indent before classic repr() call.
- blacklisted_names (Iterable[str] | None) – Blacklisted argument names. Arguments with this names will be skipped in log.
- blacklisted_exceptions (Iterable[type[Exception]] | None) – list of exceptions, which should be re-raised without producing traceback and text log record.
- log_call_args (bool) – log call arguments before executing wrapped function.
- log_call_args_on_exc (bool) – log call arguments if exception raised.
- log_traceback (bool) – log traceback on exception in addition to failure info
- log_result_obj (bool) – log result of function call.
Returns: built real decorator.
Return type: LogWrap | Callable[.., Awaitable[typing.Any] | typing.Any]
Changed in version 3.3.0: Extract func from log and do not use Union.
Changed in version 3.3.0: Deprecation of *args
Changed in version 4.0.0: Drop of *args
Changed in version 5.1.0: log_traceback parameter
Changed in version 8.0.0: pick up logger from target module if possible
Changed in version 9.0.0: Only LogWrap instance act as decorator
-
class
logwrap.
BoundParameter
(inspect.Parameter)[source]¶ Parameter-like object store BOUND with value parameter. .. versionchanged:: 5.3.1 subclass inspect.Parameter
New in version 3.3.0.
-
__init__
(self, parameter, value=Parameter.empty)[source]¶ Parameter-like object store BOUND with value parameter.
Parameters: - parameter (
inspect.Parameter
) – parameter from signature - value (typing.Any) – parameter real value
Raises: ValueError – No default value and no value
- parameter (
-
parameter
¶ Parameter object.
Return type: BoundParameter
-
value
¶ Parameter value.
Return type: typing.Any
-
-
logwrap.
bind_args_kwargs
(sig, *args, **kwargs)[source]¶ Bind *args and **kwargs to signature and get Bound Parameters.
Parameters: sig (inspect.Signature) – source signature Returns: Iterator for bound parameters with all information about it Return type: list[BoundParameter] New in version 3.3.0.
Changed in version 5.3.1: return list