(func)
| 146 | |
| 147 | |
| 148 | def decorate_log_method(func): |
| 149 | @wraps(func) |
| 150 | def func_wrapper(*args, **kwargs): |
| 151 | # Prefix extra keys with underscore |
| 152 | if "extra" in kwargs: |
| 153 | kwargs["extra"] = prefix_dict_keys(dictionary=kwargs["extra"], prefix="_") |
| 154 | |
| 155 | try: |
| 156 | return func(*args, **kwargs) |
| 157 | except TypeError as e: |
| 158 | # In some version of Python 2.7, logger.exception doesn't take any kwargs so we need |
| 159 | # this hack :/ |
| 160 | # See: |
| 161 | # - https://docs.python.org/release/2.7.3/library/logging.html#logging.Logger.exception |
| 162 | # - https://docs.python.org/release/2.7.7/library/logging.html#logging.Logger.exception |
| 163 | if "got an unexpected keyword argument 'extra'" in six.text_type(e): |
| 164 | kwargs.pop("extra", None) |
| 165 | return func(*args, **kwargs) |
| 166 | raise e |
| 167 | |
| 168 | return func_wrapper |
| 169 | |
| 170 | |
| 171 | def decorate_logger_methods(logger): |
no outgoing calls
no test coverage detected