VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 1
声望: 0

策略里面的info日志,在哪个文件里输出呢,找不到代码执行的bug

description

Super Moderator
avatar
加入于:
帖子: 112
声望: 12

我来帮您查找 VeighNa 策略中 info 日志的输出位置。首先让我查询相关的文档和源代码。

现在让我查询具体的源代码来了解日志输出的实现机制:

让我查看策略模板文件,了解 write_log 的具体实现:

现在让我查看 CTA 引擎的实现,了解日志是如何处理的:

现在让我查看日志引擎的配置,了解日志文件的输出位置:

让我查看日志引擎的实现:

让我查看设置文件的配置:

根据我的查询结果,我来为您详细解答 VeighNa 策略中 info 日志的输出位置:

策略日志输出机制

1. 日志输出位置

策略中的 self.write_log() 方法输出的日志会出现在以下位置:

A. 界面显示

  • 在 VeighNa Trader 的 CTA 策略界面中显示
  • 格式为:[策略实例名称] 日志内容

B. 日志文件

  • 默认路径:C:\Users\{用户名}\.vntrader\log\
  • 文件名格式:vt_YYYYMMDD.log(按日期生成)
  • 例如:vt_20241219.log

2. 日志配置要求

要确保日志能够写入文件,需要在 vt_setting.json 配置文件中设置以下参数:

{
    "log.active": true,
    "log.level": 10,
    "log.console": true,
    "log.file": true
}

关键参数说明:

  • log.active: 必须为 true,否则日志引擎不启动
  • log.level: 设置为 10(DEBUG)或 20(INFO)才能看到 info 日志
  • log.file: 必须为 true,否则不会写入文件

3. 日志输出流程

  1. 策略调用self.write_log("您的日志信息")
  2. CTA引擎处理:在 engine.pywrite_log 方法中格式化为 [策略名] 日志内容
  3. 事件分发:通过 EVENT_CTA_LOG 事件发送
  4. 日志引擎记录:由 LogEngine 接收并写入文件和控制台

4. 调试建议

如果找不到日志文件,请检查:

  1. 配置文件位置C:\Users\{用户名}\.vntrader\vt_setting.json
  2. 日志目录权限:确保有写入权限
  3. 日志级别:确认 log.level 设置为 1020
  4. 文件存在性:检查 .vntrader\log 目录是否存在

5. 代码示例

在您的策略中这样使用:

def on_bar(self, bar: BarData):
    self.write_log(f"收到K线: {bar.datetime} 收盘价: {bar.close_price}")
    # 这会在界面显示 [策略名] 收到K线: ... 
    # 同时写入日志文件

如果您的日志文件是空白的,很可能是 log.file 设置为 false 或者 log.level 设置过高。请检查配置文件并确保上述参数正确设置。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】