使用Google App Engine的本地dev_server,其中一个published options是将日志文件保存到磁盘。
"如果您希望将日志从开发服务器保存到您自己>选择的位置的磁盘,请按以下方式为--logs_path命令行选项提供所需的路径和文件名:
dev_appserver.py --logs_path = your-path / your-logfile-name your-app-directory"
除非文件采用我无法解码的二进制格式,否则无法正常工作。
Google发布了一些sample code,但这是供应用程序阅读生产日志。
是否有命令行utlity或python脚本可以解码dev_server存储的日志文件?这是2011年以feature request提交的。
我可以在生成PyDev控制台时看到日志,但是一旦当前执行重新启动,那些日志就会从该控制台消失。
有一些suggestions来管道日志文件unix样式,但这对已经存储的日志没有帮助。
答案 0 :(得分:1)
创建的日志文件是SQLite数据库。使用sqlite3
module进行访问。
使用的架构是:
CREATE TABLE AppLogs (
id INTEGER NOT NULL PRIMARY KEY,
request_id INTEGER NOT NULL,
timestamp INTEGER NOT NULL,
level INTEGER NOT NULL,
message TEXT NOT NULL,
FOREIGN KEY(request_id) REFERENCES RequestLogs(id)
);
CREATE TABLE RequestLogs (
id INTEGER NOT NULL PRIMARY KEY,
user_request_id TEXT NOT NULL,
app_id TEXT NOT NULL,
version_id TEXT NOT NULL,
module TEXT NOT NULL,
ip TEXT NOT NULL,
nickname TEXT NOT NULL,
start_time INTEGER NOT NULL,
end_time INTEGER DEFAULT 0 NOT NULL,
method TEXT NOT NULL,
resource TEXT NOT NULL,
http_version TEXT NOT NULL,
status INTEGER DEFAULT 0 NOT NULL,
response_size INTEGER DEFAULT 0 NOT NULL,
user_agent TEXT NOT NULL,
url_map_entry TEXT DEFAULT '' NOT NULL,
host TEXT NOT NULL,
task_queue_name TEXT DEFAULT '' NOT NULL,
task_name TEXT DEFAULT '' NOT NULL,
latency INTEGER DEFAULT 0 NOT NULL,
mcycles INTEGER DEFAULT 0 NOT NULL,
finished INTEGER DEFAULT 0 NOT NULL
);
RequestLogs
包含HTTP请求(来自浏览器或任务队列); AppLogs
包含在特定请求期间记录的所有日志记录条目。