小编Daw*_* K.的帖子

如何在不使代码看起来糟糕的情况下进行干净的日志记录?

我正在尝试编写干净的代码,所以我不希望我的代码被随机记录污染。这对我来说看起来很糟糕:

def generate_auth_token(self):
    logger.debug("Existing auth token: {}".format(self.auth_token))
    self.auth_token = uuid.uuid4()
    self.save()
    logger.debug("Updated auth token:  {}".format(self.auth_token))
    return str(self.auth_token)
Run Code Online (Sandbox Code Playgroud)

日志如下所示:

backend-api_1  | DEBUG: Device token: 66f4b515-c6f5-433c-885f-61c8a1f63ce5
backend-api_1  | Debug: Existing auth token: 66f4b515-c6f5-433c-885f-61c8a1f63ce5
backend-api_1  | Debug: Updated auth token: 66f4b515-c6f5-433c-885f-61c8a1f63ce5
Run Code Online (Sandbox Code Playgroud)

很难读取这样的代码。我想到了使用装饰器记录所有功能的想法。

backend-api_1  | DEBUG: Device token: 66f4b515-c6f5-433c-885f-61c8a1f63ce5
backend-api_1  | Debug: Existing auth token: 66f4b515-c6f5-433c-885f-61c8a1f63ce5
backend-api_1  | Debug: Updated auth token: 66f4b515-c6f5-433c-885f-61c8a1f63ce5
Run Code Online (Sandbox Code Playgroud)

上面的例子,现在看起来更干净了

def log_input_output(logger_name='', func_name=None, log_input_values=True):
  logger = logging.getLogger(logger_name)

  def _log_input_output_decorator(func):
    if not func_name:
      message_prefix = f'{func.__name__}'
    else:
      message_prefix = f'{func_name}'

    @wraps(func) …
Run Code Online (Sandbox Code Playgroud)

python django optimization logging

7
推荐指数
1
解决办法
241
查看次数

无法在“导航器”上执行“共享”:先前的共享尚未完成

我刚刚看到我网站上的一些用户遇到了此错误

InvalidStateError:无法在“Navigator”上执行“共享”:早期共享尚未完成。

这发生在这部分代码上:

if(navigator.share) {
  navigator.share({
    url: 'https://www.example.com',
  });
}
Run Code Online (Sandbox Code Playgroud)

MDN 网站甚至没有提及此错误的可能性。

我看到错误来自 Windows、Android 和 Chrome 操作系统的 Chrome 浏览器。我看到 mac 上的 chrome 目前没有共享功能。值得一提的是,这个问题很少发生。我尝试通过多次快速单击共享、限制 CPU 和网络、取消共享来重现它,但我始终无法让它抛出此错误。

有谁知道如何触发此错误或看过有关它的任何文档?

javascript google-chrome navigator

5
推荐指数
1
解决办法
1775
查看次数