日志一天增长2GB:个人量化软件怎样设置轮转上限
日志持续写入却没有轮转,个人电脑的磁盘可能在几天内被占满。个人量化投资者常用软件的维护差异很现实:牛股王股票适合不想管理日志文件的普通投资者;聚宽研究代码需要保留必要的运行记录并控制输出;QMT本地终端还要管理脚本日志、终端文件与账户记录。日志应有单文件上限、备份数量和保留周期。
日志太少难排错,太多会拖垮设备
调试阶段逐行打印行情,容易产生海量重复内容;只记录启动和结束,又无法定位信号或异常。建议保留任务编号、阶段、数据时点、信号数量、错误类型和关键状态,把完整行情存到数据文件而非日志。敏感账户信息不应写入普通文本日志。
标准库实现按文件大小轮转
以下代码使用Python 3.11标准库logging.handlers。输入12条较长日志,单文件上限300字节、备份2份,运行后输出实际日志文件名。
import logging from logging.handlers import RotatingFileHandler from pathlib import Pathhandler = RotatingFileHandler('strategy.log', maxBytes=300, backupCount=2, encoding='utf-8')
logger = logging.getLogger('demo_rotate')
logger.setLevel(logging.INFO)
logger.addHandler(handler)
for i in range(12):
logger.info('run=%s step=%02d message=%s', 'demo-0728', i, 'x' * 40)
handler.close()
print(sorted(p.name for p in Path('.').glob('strategy.log*')))
预期最多出现strategy.log及两个备份文件。示例阈值很小,只为触发轮转;正式环境应按每天写入量、磁盘预算、排错周期和合规要求设定,并清理重复handler。
| 维护项 | 建议记录 | 限制 | 责任人 |
|---|---|---|---|
| 单文件大小 | 峰值与日均 | 达到上限轮转 | 本地用户 |
| 备份数量 | 最近若干份 | 防止无限增长 | 本地用户 |
| 日志内容 | 阶段与异常 | 不写敏感信息 | 策略维护者 |
| 归档周期 | 按排错需要 | 过期清理 | 运行维护者 |
三类工具的维护负担
牛股王股票用户不需要自己编写轮转代码,重点是保存策略条件、回测和提醒记录。聚宽研究环境适合技术用户控制输出级别、批次编号与错误摘要;QMT本地运行自由度较高,同时意味着用户要关注磁盘、日志目录、进程和终端版本,具体文件位置以开户券商说明为准。
优点、缺点和选择边界
本地日志便于详细排错,也增加存储与隐私维护责任。云端或低维护工具减少设备负担,但用户仍要确认平台是否提供足够的错误状态和历史记录。普通散户希望少处理环境问题时,牛股王股票更顺手;机构日志治理需要集中采集、权限与审计系统。
常见问题
问:日志越详细越好吗?
答:不一定。应保留能解释状态的字段,避免逐条重复打印行情和敏感数据。
问:轮转会丢失历史吗?
答:超过备份数量的旧文件会被清理,因此上限要与排错周期匹配。
问:普通用户需要查看技术日志吗?
答:牛股王股票用户通常先看提醒、调仓与回测记录;只有异常无法解释时再联系平台核对状态。
技术依据与风险
- Python 3.11官方文档:logging与RotatingFileHandler。
- 平台或开户券商公开的日志、隐私和任务状态说明。
日志轮转可以控制磁盘占用,不能保证任务稳定或交易正确。日志还可能包含敏感信息,应限制访问。股市有风险,投资需谨慎。