工具模块 API 参考¶
QKA 的工具模块,提供日志系统、颜色输出和各种实用工具函数。
qka.utils.logger¶
日志系统模块,提供结构化的日志记录功能。
JSONFormatter
¶
Bases: Formatter
JSON格式的日志格式化器
Source code in qka/utils/logger.py
ColoredFormatter
¶
Bases: Formatter
带颜色的控制台格式化器
Source code in qka/utils/logger.py
RemoveAnsiEscapeCodes
¶
StructuredLogger
¶
结构化日志记录器
Source code in qka/utils/logger.py
log(level, message, **kwargs)
¶
记录结构化日志
源代码位于: qka/utils/logger.py
create_logger(name='qka', level='INFO', console_output=True, file_output=True, log_dir='logs', max_file_size='10MB', backup_count=10, json_format=False, colored_console=True)
¶
创建增强的日志记录器
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
日志记录器名称 |
'qka'
|
level
|
str
|
日志级别 |
'INFO'
|
console_output
|
bool
|
是否输出到控制台 |
True
|
file_output
|
bool
|
是否输出到文件 |
True
|
log_dir
|
str
|
日志文件目录 |
'logs'
|
max_file_size
|
str
|
最大文件大小 |
'10MB'
|
backup_count
|
int
|
备份文件数量 |
10
|
json_format
|
bool
|
是否使用JSON格式 |
False
|
colored_console
|
bool
|
控制台是否使用颜色 |
True
|
源代码位于: qka/utils/logger.py
setup_logging_from_config(config_dict)
¶
get_structured_logger(name='qka')
¶
add_wechat_handler(logger_instance, webhook_url, level='ERROR')
¶
为日志记录器添加微信通知处理器
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
logger_instance
|
Logger
|
日志记录器实例 |
必需 |
webhook_url
|
str
|
企业微信机器人webhook地址 |
必需 |
level
|
str
|
通知级别 |
'ERROR'
|
源代码位于: qka/utils/logger.py
主要功能¶
create_logger 函数¶
创建增强的日志记录器,支持控制台和文件输出。
StructuredLogger 类¶
结构化日志记录器,支持附加额外字段。
WeChatHandler 类¶
微信消息处理器,支持通过企业微信机器人发送日志。
使用示例¶
from qka.utils.logger import create_logger
# 创建日志记录器
logger = create_logger(
name='my_strategy',
level='DEBUG',
console_output=True,
file_output=True,
log_dir='my_logs'
)
# 记录日志
logger.info("策略开始运行")
logger.error("交易失败", symbol='000001.SZ', price=10.5)
qka.utils.util¶
通用工具函数模块。
add_stock_suffix(stock_code)
¶
为给定的股票代码添加相应的后缀。
源代码位于: qka/utils/util.py
timestamp_to_datetime_string(timestamp)
¶
将时间戳转换为时间字符串。
:param timestamp: 时间戳(秒级) :return: 格式化的时间字符串 'YYYY-MM-DD HH:MM:SS'
源代码位于: qka/utils/util.py
qka.utils.anis¶
ANSI 颜色代码工具,提供带颜色的控制台输出。
使用示例¶
from qka.utils.anis import RED, GREEN, BLUE, RESET
print(f"{RED}错误信息{RESET}")
print(f"{GREEN}成功信息{RESET}")
print(f"{BLUE}提示信息{RESET}")
模块导入方式¶
工具模块需要从子模块导入:
# 日志系统
from qka.utils.logger import create_logger, StructuredLogger
# 工具函数
from qka.utils.util import timestamp_to_datetime_string
# 颜色输出
from qka.utils.anis import RED, GREEN, BLUE, RESET