taolib.testing.audit.logger#
审计日志记录器。
提供审计日志的记录功能,支持多种存储后端。
Attributes#
Classes#
审计日志存储后端协议。 |
|
内存审计日志存储。 |
|
文件审计日志存储。 |
|
MongoDB 审计日志存储。 |
|
审计日志记录器。 |
Module Contents#
- taolib.testing.audit.logger.logger#
- class taolib.testing.audit.logger.AuditStorageProtocol#
Bases:
Protocol审计日志存储后端协议。
定义审计日志存储后端需要实现的所有操作。
- async save(log: taolib.testing.audit.models.AuditLog) None#
保存审计日志。
- 参数:
log -- 审计日志实例
- async save_batch(logs: collections.abc.Sequence[taolib.testing.audit.models.AuditLog]) None#
批量保存审计日志。
- 参数:
logs -- 审计日志列表
- async query(filter_params: taolib.testing.audit.models.AuditLogFilter) list[taolib.testing.audit.models.AuditLogResponse]#
查询审计日志。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的审计日志列表
- async count(filter_params: taolib.testing.audit.models.AuditLogFilter) int#
统计审计日志数量。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的日志数量
- async delete_old_logs(before: datetime.datetime) int#
删除旧日志。
- 参数:
before -- 删除此时间之前的日志
- 返回:
删除的日志数量
- class taolib.testing.audit.logger.InMemoryAuditStorage(max_size: int = 10000)#
内存审计日志存储。
适用于测试和开发环境。
- _logs#
日志存储列表
- _max_size#
最大存储数量
- _logs: list[taolib.testing.audit.models.AuditLog] = []#
- _max_size = 10000#
- async save(log: taolib.testing.audit.models.AuditLog) None#
保存审计日志。
- 参数:
log -- 审计日志实例
- async save_batch(logs: collections.abc.Sequence[taolib.testing.audit.models.AuditLog]) None#
批量保存审计日志。
- 参数:
logs -- 审计日志列表
- async query(filter_params: taolib.testing.audit.models.AuditLogFilter) list[taolib.testing.audit.models.AuditLogResponse]#
查询审计日志。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的审计日志列表
- async count(filter_params: taolib.testing.audit.models.AuditLogFilter) int#
统计审计日志数量。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的日志数量
- async delete_old_logs(before: datetime.datetime) int#
删除旧日志。
- 参数:
before -- 删除此时间之前的日志
- 返回:
删除的日志数量
- _match_filter(log: taolib.testing.audit.models.AuditLog, filter_params: taolib.testing.audit.models.AuditLogFilter) bool#
检查日志是否匹配过滤器。
- 参数:
log -- 审计日志
filter_params -- 过滤器
- 返回:
是否匹配
- class taolib.testing.audit.logger.FileAuditStorage(file_path: str | pathlib.Path, max_size: int = 100000)#
文件审计日志存储。
将审计日志保存到 JSON 文件中。
- _file_path#
日志文件路径
- _max_size#
最大存储数量
- _file_path#
- _max_size = 100000#
- _read_logs() list[taolib.testing.audit.models.AuditLog]#
读取所有日志。
- 返回:
日志列表
- _write_logs(logs: list[taolib.testing.audit.models.AuditLog]) None#
写入所有日志。
- 参数:
logs -- 日志列表
- async save(log: taolib.testing.audit.models.AuditLog) None#
保存审计日志。
- 参数:
log -- 审计日志实例
- async save_batch(logs: collections.abc.Sequence[taolib.testing.audit.models.AuditLog]) None#
批量保存审计日志。
- 参数:
logs -- 审计日志列表
- async query(filter_params: taolib.testing.audit.models.AuditLogFilter) list[taolib.testing.audit.models.AuditLogResponse]#
查询审计日志。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的审计日志列表
- async count(filter_params: taolib.testing.audit.models.AuditLogFilter) int#
统计审计日志数量。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的日志数量
- async delete_old_logs(before: datetime.datetime) int#
删除旧日志。
- 参数:
before -- 删除此时间之前的日志
- 返回:
删除的日志数量
- _match_filter(log: taolib.testing.audit.models.AuditLog, filter_params: taolib.testing.audit.models.AuditLogFilter) bool#
检查日志是否匹配过滤器。
- class taolib.testing.audit.logger.MongoDBAuditStorage(client: motor.motor_asyncio.AsyncIOMotorClient, database_name: str = 'audit', collection_name: str = 'logs')#
MongoDB 审计日志存储。
使用 MongoDB 作为审计日志存储后端。
- _client#
MongoDB 客户端
- _database_name#
数据库名称
- _collection_name#
集合名称
- _client#
- _database_name = 'audit'#
- _collection_name = 'logs'#
- _collection#
- async save(log: taolib.testing.audit.models.AuditLog) None#
保存审计日志。
- 参数:
log -- 审计日志实例
- async save_batch(logs: collections.abc.Sequence[taolib.testing.audit.models.AuditLog]) None#
批量保存审计日志。
- 参数:
logs -- 审计日志列表
- async query(filter_params: taolib.testing.audit.models.AuditLogFilter) list[taolib.testing.audit.models.AuditLogResponse]#
查询审计日志。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的审计日志列表
- async count(filter_params: taolib.testing.audit.models.AuditLogFilter) int#
统计审计日志数量。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的日志数量
- async delete_old_logs(before: datetime.datetime) int#
删除旧日志。
- 参数:
before -- 删除此时间之前的日志
- 返回:
删除的日志数量
- _build_query(filter_params: taolib.testing.audit.models.AuditLogFilter) dict[str, Any]#
构建 MongoDB 查询条件。
- 参数:
filter_params -- 过滤器
- 返回:
MongoDB 查询字典
- class taolib.testing.audit.logger.AuditLogger(storage: AuditStorageProtocol, default_user_id: str | None = None, default_ip_address: str | None = None)#
审计日志记录器。
提供审计日志的记录功能,支持同步和异步操作。
- _storage#
存储后端
- _default_user_id#
默认用户 ID
- _default_ip_address#
默认 IP 地址
- _storage#
- _default_user_id = None#
- _default_ip_address = None#
- async log(action: str, resource_type: str, resource_id: str | None = None, user_id: str | None = None, details: dict[str, Any] | None = None, ip_address: str | None = None, user_agent: str | None = None, status: str = 'success', error_message: str | None = None) taolib.testing.audit.models.AuditLog#
记录审计日志。
- 参数:
action -- 操作类型
resource_type -- 资源类型
resource_id -- 资源 ID
user_id -- 用户 ID
details -- 操作详情
ip_address -- IP 地址
user_agent -- User-Agent
status -- 操作状态
error_message -- 错误信息
- 返回:
创建的审计日志实例
- async log_create(resource_type: str, resource_id: str, user_id: str | None = None, details: dict[str, Any] | None = None, ip_address: str | None = None, user_agent: str | None = None) taolib.testing.audit.models.AuditLog#
记录创建操作。
- 参数:
resource_type -- 资源类型
resource_id -- 资源 ID
user_id -- 用户 ID
details -- 操作详情
ip_address -- IP 地址
user_agent -- User-Agent
- 返回:
创建的审计日志实例
- async log_update(resource_type: str, resource_id: str, user_id: str | None = None, details: dict[str, Any] | None = None, ip_address: str | None = None, user_agent: str | None = None) taolib.testing.audit.models.AuditLog#
记录更新操作。
- 参数:
resource_type -- 资源类型
resource_id -- 资源 ID
user_id -- 用户 ID
details -- 操作详情
ip_address -- IP 地址
user_agent -- User-Agent
- 返回:
创建的审计日志实例
- async log_delete(resource_type: str, resource_id: str, user_id: str | None = None, details: dict[str, Any] | None = None, ip_address: str | None = None, user_agent: str | None = None) taolib.testing.audit.models.AuditLog#
记录删除操作。
- 参数:
resource_type -- 资源类型
resource_id -- 资源 ID
user_id -- 用户 ID
details -- 操作详情
ip_address -- IP 地址
user_agent -- User-Agent
- 返回:
创建的审计日志实例
- async log_login(user_id: str, ip_address: str | None = None, user_agent: str | None = None, success: bool = True, error_message: str | None = None) taolib.testing.audit.models.AuditLog#
记录登录操作。
- 参数:
user_id -- 用户 ID
ip_address -- IP 地址
user_agent -- User-Agent
success -- 是否成功
error_message -- 错误信息
- 返回:
创建的审计日志实例
- async log_logout(user_id: str, ip_address: str | None = None, user_agent: str | None = None) taolib.testing.audit.models.AuditLog#
记录登出操作。
- 参数:
user_id -- 用户 ID
ip_address -- IP 地址
user_agent -- User-Agent
- 返回:
创建的审计日志实例
- async query(filter_params: taolib.testing.audit.models.AuditLogFilter) list[taolib.testing.audit.models.AuditLogResponse]#
查询审计日志。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的审计日志列表
- async count(filter_params: taolib.testing.audit.models.AuditLogFilter) int#
统计审计日志数量。
- 参数:
filter_params -- 查询过滤器
- 返回:
匹配的日志数量