跳到主要内容

二、日志管理

二、日志管理

2.1 日志记录

📝 log(msg, level=None, color=None, web=True)

功能: 记录日志到控制台和Web平台

参数:

  • msg: 日志消息内容
  • level: 日志级别,可选值: "TRACE", "DEBUG", "INFO", "WARN", "ERROR",默认为"INFO"
  • color: 日志颜色,可选,默认为None
  • web: 是否发送到Web平台,默认为True

返回值: 无

示例:

# 无色日志,默认发送到web平台
trader.log("交易开始")
# 红色日志,发送到web平台
trader.log("价格异常", "WARN","red")
# 不发送到web平台
trader.log("调试信息", "DEBUG", web=False)
# 发送错误日志到平台
trader.log("错误", "ERROR")
# 多行日志使用\n分割
trader.log("多行日志\n第二行\n第三行")

📝 tlog(tag, msg, color=None, interval=0, level=None, query=False)

功能: 限频日志记录,每N秒最多打印一次指定标签的日志

参数:

  • tag: 日志标识
  • msg: 日志内容
  • color: 日志颜色,可选,默认为None
  • interval: 日志最小间隔(秒),默认为0
  • level: 日志级别,可选,默认为"INFO"
  • query: 是否只查询不更新时间,默认为False

返回值:

  • bool - True表示已发送日志,False表示未发送日志

示例:

# 每60秒最多记录一次市场状态
trader.tlog("市场状态", "市场流动性正常", interval=60)

# 使用特定颜色记录警告信息
trader.tlog("价差警告", "价差超过阈值", color="yellow", level="WARN")

# 不更新时间戳
should_log = trader.tlog("检测点", "价格波动", interval=30, query=True)
if should_log:
# 执行额外操作
pass

# 多行日志记录
trader.tlog("深度分析",
f"BTC-USDT 深度\n买: [(50000, 1.2), (49900, 2.5)]\n卖: [(50100, 1.5), (50200, 3.0)]\n不平衡: 0.8750",
interval=5,
level="DEBUG",
color="royalblue")

📝 logt(message, time, color=None, level=None)

功能: 使用指定时间戳记录日志

参数:

  • message: 日志内容
  • time: 日志时间戳(Unix时间戳)
  • color: 日志颜色,可选,默认为None
  • level: 日志级别,可选,默认为"INFO"

返回值: 无

示例:

import time

# 记录1小时前的事件
past_time = int(time.time()) - 3600
trader.logt("历史事件记录", past_time)

# 使用特定颜色和级别记录日志
event_time = int(time.time())
trader.logt("重要事件", event_time, color="blue", level="INFO")

2.2 内置颜色表

日志相关函数(如logtloglogt)支持通过color参数设置文本颜色。系统支持多种颜色,按功能和使用场景分类如下:

交易状态颜色

颜色名称十六进制代码交易应用场景
green#32CD32交易成功、盈利交易、多头信号、买入信号
red#FF4500交易失败、亏损交易、空头信号、卖出信号
blue#0000FF交易执行、订单提交、中性交易状态
yellow#FFFF00交易警告、风险提示、接近止损点

提示: 系统还支持直接使用十六进制颜色代码,格式为#RRGGBB,例如#FF7F50(珊瑚红)。