在最近的SDK更新中,Google似乎已将一个INFO级日志添加到dev_appserver中,每次检测到文件更改时都会打印出来。
在我看来,这只是用我已经知道的信息弄乱了日志,因此我不希望它在我的控制台上打印出来。
INFO 2014-11-27 09:52:43,876 module.py:391] [default] Detected file changes:
/Users/michael/app/templates/home
/Users/michael/app/templates/home/index.html
有没有办法从日志中删除这些行?由于这是一个INFO级别的日志,我无法真正从log_level中删除INFO,因为其他INFO日志会多次派上用场......
有什么建议吗?
答案 0 :(得分:3)
这是App Engine问题跟踪器上的一个问题。投票以便更快地解决问题。
https://code.google.com/p/googleappengine/issues/detail?id=11662
答案 1 :(得分:2)
这个问题也开始让我烦恼,所以这是我的快速解决方案,直到开发人员找到更长久的解决方案:
在path-to-SDK\google\appengine\tools\devappserver2\module.py
注释掉第424-426行。
424 # logging.info(
425 # '[%s] Detected file changes:\n %s', self.name,
426 # '\n '.join(sorted(file_changes)))
只要记住在构建更改时再次执行此操作,如果他们不修复它。 (我正在使用1.9.20 atm)(:
答案 2 :(得分:1)
正如Derek Perkins所指出的那样,这被发送到了App Engine Issue tracker。由于我有同样的问题,我主演了这个问题。我很高兴地看到它实际上被送到了工程部门,他们今天更新了跟踪器,并提供了解决方法。我重写了部分内容并添加了一些格式:)
问题的根本原因
跟踪项目文件夹中每个文件的主要原因是因为重新加载逻辑是天真的,并且无法知道哪些文件实际上正在使用中。
如果某些数据文件内容已更改,但仅在模块导入时加载(例如某些框架中的模板),则devserver很难准确检测到此类更改。
Git和Mercurial的解决方法
如果你把你的项目文件夹放在你的git repo的根目录的任何地方,它会使所有.git
文件出现在项目的目录之外,所以不应该看到对文件的更改,因此不应该t触发网络服务器重新加载。例如,以这种方式构建项目的结构:
myproject/
myproject/.git/
myproject/.gitignore
myproject/myapp/
myproject/myapp/app.yaml
myproject/README
然后在myproject / myapp中运行devserver而不是“myproject”。
还有人提到这已在Git和Mercurial上测试过,但它不适用于CVS或SVN。