小编fbp*_*ris的帖子

Chrome Network Inspector中缺少请求标头(和发送的Cookie)吗?

我注意到,在某些情况下(例如XHR请求),至少在OSX Google Chrome浏览器中,发送的请求标头和cookie从网络检查中消失了。

如果看不到我的意思,只需打开Web检查器并连接到您的Twitter帐户,然后检查XHR请求:您可以看到请求有效负载和响应标头,但发送的标头和cookie已消失。

任何想法如何解决这个问题?我试过在about:flags中激活一些奇异的标志,但是没有看到任何变化。

request-headers web-inspector http-headers google-chrome-devtools

10
推荐指数
1
解决办法
7276
查看次数

如何使用 python 日志记录修复延迟输出?

我正在使用一个基本的记录器来跟踪我的程序正在做什么的终端,我注意到日志有时会延迟几秒钟或几分钟,甚至无缘无故地被跳过。

这是我的日志记录设置:

import logging
logging.basicConfig(
  level=logging.WARNING,
  format='%(asctime)s %(name)s %(levelname)s %(message)s'
)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
Run Code Online (Sandbox Code Playgroud)

没什么特别的,这里是我使用记录器的代码示例,在按键事件之后,但在我决定处理事件之前发生了延迟:

    if event.key == "c":
        if self.mode != "clock":
            logger.info("switching to clock mode")
            self.mode = "clock"
            self.gravitons = []
            self.updateGravitonsKTree()
            self.canShuffle = False
    elif event.key == "f":
        if self.mode != "free":
            logger.info("switching to free mode")
            self.mode = "free"
            self.gravitons = []
            self.updateGravitonsKTree()
    (...)
Run Code Online (Sandbox Code Playgroud)

我确信只有记录器的输出被延迟或跳过,因为我可以看到程序的其余部分立即正常反应,所以我猜可能有一种缓冲区没有正确刷新,但我在日志记录模块的文档。

另外,在这个程序中,我使用了 matplotlib 动画,我怀疑它与这个问题有关,但我承认我不清楚为什么会出现这种情况以及如何出现这种情况。

有人经历过同样的事情吗?有没有办法“修复”它?

logging python-3.x python-logging

7
推荐指数
0
解决办法
1111
查看次数

如何从函数中动态删除装饰器?

我想在执行期间激活或停用某个类方法中的“缓存”。

我找到了一种方法来激活它:

(...)
setattr(self, "_greedy_function", my_cache_decorator(self._cache)(getattr(self, "_greedy_function")))
(...)
Run Code Online (Sandbox Code Playgroud)

哪里self._cache是我自己的缓存对象,用于存储self._greedy_function.

它工作正常,但现在如果我想停用缓存并“取消装饰”_greedy_function怎么办?

我看到了一个可能的解决方案,_greedy_function在装饰它之前存储它的引用,但也许有一种方法可以从装饰函数中检索它,那会更好。

根据要求,这里是我用来缓存类函数结果的装饰器和缓存对象:

import logging
from collections import OrderedDict, namedtuple
from functools import wraps

logging.basicConfig(
    level=logging.WARNING,
    format='%(asctime)s %(name)s %(levelname)s %(message)s'
)

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

CacheInfo = namedtuple("CacheInfo", "hits misses maxsize currsize")

def lru_cache(cache):
    """
    A replacement for functools.lru_cache() build on a custom LRU Class.
    It can cache class methods.
    """
    def decorator(func):
        logger.debug("assigning cache %r to function %s" % (cache, func.__name__))
        @wraps(func) …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-decorators

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