当前位置: 首页 > 面试题库 >

GoogleAppEngineLauncher在哪里保存本地日志文件?

锺离良哲
2023-03-14
问题内容

在开发过程中,当我的应用程序在Mac上运行时,GoogleAppEngineLauncher可以显示我的应用程序的本地日志文件。但是,我无法在此处更改字体大小,因此我想使用该tail命令自己查看日志文件。

很遗憾,但是我找不到日志文件。他们不是下/var/log/~/Library/Logs/Library/Logs。你知道他们在哪里吗?

(也许没有物理文件,只有python开发环境的标准输出,因此日志仅在启动器应用程序中可用。)


问题答案:

正如你猜测,并通过研究源文件确认/usr/local/google_appengine/google/appengine/tools/dev_appserver.py,该日志不会被写入到磁盘(一个cStringIO.StringIO实例用于保留在内存中,作为代码的其余部分
面向写他们“一类文件对象”)。

我建议编写自己的应用服务器脚本,该脚本将import
dev_appserver,subclassesdev_appserver.ApplicationLoggingHandler和重写 一种
方法:

from google.appengine.tools import dev_appserver

class MyHandler(dev_appserver.ApplicationLoggingHandler):

    def __init__(self, *a, **k):
        dev_appserver.ApplicationLoggingHandler.__init__(self, *a, **k)
        self.thefile = open('/tmp/mylog.txt', 'w')

    def emit(self, record):
        dev_appserver.ApplicationLoggingHandler(self, record)
        self.thefile.write(str(record) + '\n')
        self.thefile.flush()

您还需要确保使用此类而不是标准类,例如,通过对调度程序进行子类化或确保使用其依赖项注入功能。(dev_appserver_main.py我认为,您可以更好地控制它)。

我认为这种自定义方法要麻烦得多(毕竟,将日志写入文件是完全正常的-要么根据需要显示不同的日志,要么稍后再使用一些辅助脚本进行处理),因此,我还建议您在App
Engine的跟踪器上提出功能请求:dev_appserver.py应再接受一个标志,如果指定了该标志,则会提供将日志写入磁盘的路径。

而且,老实说,如果我现在自己需要此功能,我会以肮脏的方式进行:编辑该.py文件(及其相关文件_main.py)以添加上述标记及其用途。总共应该有十几行,比我刚才概述的“规范”方法容易得多。当然,这
肮脏的,因为每当有一个新的SDK,你将不得不重新应用补丁,并再次,再次…这就是为什么人们应该
提出了基于GAE的跟踪补丁,作为特征请求的一部分我建议,希望它能很快被接受!-)



 类似资料:
  • 问题内容: 我找不到存储nodejs日志文件的位置。因为在我的节点服务器中出现“分段错误”,所以我想查看日志文件以获取其他信息… 问题答案: 没有日志文件。每个node.js“应用”都是一个单独的实体。默认情况下,它将错误记录到STDERR并输出到STDOUT。您可以在从外壳运行它时将其更改为登录到文件。 另外(推荐),您可以手动或使用许多日志库之一在应用程序内部添加日志记录: winston l

  • 问题内容: 这可能是一个愚蠢的问题,但是我对Java Logger有点迷茫 我在哪里可以看到日志?同样来自java.util.logging.Logger库的这句话: 在每次记录调用时,记录器最初都会根据记录器的有效日志级别对请求级别(例如SEVERE或FINE)进行廉价检查。如果请求级别低于日志级别,则日志记录调用立即返回。 通过此初始(便宜)测试后,记录器将分配一个LogRecord来描述记录

  • 问题内容: Google最相关的结果似乎表明,为了访问日志,我们必须将自己的日志表解绑定到数据库中,并使Reporting Services对其进行写入 。 简而言之:Reporting Services是否一定要有纯文本日志文件?如果是,这些文件存储在哪里? 问题答案: 假设您将SQL 2008安装到默认位置:C:\ Program Files \ Microsoft SQL Server \

  • 问题内容: 我在查找日志文件时遇到问题。 我在Windows XP的Eclipse 3.7.1中使用Java日志记录- 。我文件的相关行是: 据我所知,执行以下两行之后: 我的日志文件应该在哪里是整数。 我在该目录中有5个不同的文件,通过,但是它们都没有包含我的日志记录,甚至没有包含今天日期的记录。我进行了一些谷歌搜索,发现“ 跟踪和日志记录”表示我的日志应位于其他位置。那里有一个名为的文件,但实

  • 我有一个PySpark作业,它是使用SparkSubmitoOperator通过气流提交给纱线的。在python文件的测试中。py我有以下日志记录: 操作器看起来像这样: 我在Yarn应用程序管理器中检查了应用程序日志,但日志没有打印出来。我检查了这个气流任务的日志,也没有打印出来。您能帮我了解PySpark应用程序日志是如何/在哪里保存的吗?非常感谢您的帮助。

  • 问题内容: 我正在使用运行多个容器。我可以使用command查看应用程序日志。但是我想访问原始日志文件以将其发送到某个地方?它在哪里?我猜这是每个容器(在容器内部?)的单独日志,但是在哪里可以找到它? 问题答案: 容器的日志可在以下位置找到: (如果您使用默认的日志格式json)

  • 问题内容: 我编写了一个简单的测试应用程序,以将某些内容记录到日志文件中。我正在使用 linux mint ,在应用程序执行后,我尝试使用以下命令查看日志: 但是文件消息既不经过测试也不存在。在下面可以找到我的代码。也许我做错了什么,文件没有存储在那儿,或者我需要启用Linux Mint中的登录功能。 问题答案: 在我的Ubuntu机器上,我可以在看到输出。 在RHEL / CentOS计算机上,

  • 我收到这个消息后,在Jmetm中执行负载测试 未捕获异常。lang.OutOfMemoryError:无法创建新的本机线程。有关详细信息,请参阅日志文件。 在哪里可以看到日志文件?