跳转到主要内容

将流量记录到SQLite数据库的ASGI中间件

项目描述

asgi-log-to-sqlite

PyPI CircleCI License

将流量记录到SQLite数据库的ASGI中间件

关于此项目的背景,请参阅使用ASGI中间件将日志记录到SQLite

安装

pip install asgi-log-to-sqlite

使用

from asgi_log_to_sqlite import AsgiLogToSqlite
from my_asgi_app import app


app = AsgiLogToSqlite(app, "/tmp/log.db")

对您的ASGI应用程序的请求现在将记录到位于/tmp/log.db的SQLite数据库文件中。

模式

用于记录请求的数据库包含一个主键表requests和6个查找表:pathsuser_agentsreferersaccept_languagescontent_typesquery_strings

完整的模式如下

CREATE TABLE [paths] (
   [id] INTEGER PRIMARY KEY,
   [name] TEXT
);
CREATE UNIQUE INDEX idx_paths_name
                ON paths (name);
CREATE TABLE [user_agents] (
   [id] INTEGER PRIMARY KEY,
   [name] TEXT
);
CREATE UNIQUE INDEX idx_user_agents_name
                ON user_agents (name);
CREATE TABLE [referers] (
   [id] INTEGER PRIMARY KEY,
   [name] TEXT
);
CREATE UNIQUE INDEX idx_referers_name
                ON referers (name);
CREATE TABLE [accept_languages] (
   [id] INTEGER PRIMARY KEY,
   [name] TEXT
);
CREATE UNIQUE INDEX idx_accept_languages_name
                ON accept_languages (name);
CREATE TABLE [content_types] (
   [id] INTEGER PRIMARY KEY,
   [name] TEXT
);
CREATE UNIQUE INDEX idx_content_types_name
                ON content_types (name);
CREATE TABLE [query_strings] (
   [id] INTEGER PRIMARY KEY,
   [name] TEXT
);
CREATE UNIQUE INDEX idx_query_strings_name
                ON query_strings (name);
CREATE TABLE [requests] (
   [start] FLOAT,
   [method] TEXT,
   [path] INTEGER REFERENCES [paths]([id]),
   [query_string] INTEGER REFERENCES [query_strings]([id]),
   [user_agent] INTEGER REFERENCES [user_agents]([id]),
   [referer] INTEGER REFERENCES [referers]([id]),
   [accept_language] INTEGER REFERENCES [accept_languages]([id]),
   [http_status] INTEGER,
   [content_type] INTEGER REFERENCES [content_types]([id]),
   [client_ip] TEXT,
   [duration] FLOAT,
   [body_size] INTEGER
);

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程

构建分发

asgi_log_to_sqlite-0.1.1-py3-none-any.whl (7.4 kB 查看哈希值)

上传时间: Python 3

由以下支持