logger.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:sublimeTextConfig 作者: luoye-fe 项目源码 文件源码
def prevent_spam(func):
    """Prevent spamming in the logger
    """

    _last_messages = {}

    def _remove_from_cache(args):
        m = _last_messages.pop(args)
        if m == 1:
            return

        method = getattr(Log._logger, args[0])
        method(
            '{}\n ...last message repeated {} in the last 10s'.format(
                args[1], 'one more time' if m == 2 else '{} times'.format(m)
            )
        )

    @functools.wraps(func)
    def wrapper(cls, *args, **kwargs):
        if args in _last_messages:
            _last_messages[args] += 1
            return

        _last_messages[args] = 1
        sublime.set_timeout_async(lambda: _remove_from_cache(args), 10000)
        func(cls, args[0], *args[1:], **kwargs)

    return wrapper
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号