You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TOML文件中创建带时间戳命名的日志文件?

修正TOML中动态日志文件名的问题

错误原因

TOML是静态配置文件格式,原生不支持字符串拼接、变量插值这类动态语法,你写的"..log/pytest_" + {timestamp} + ".log"违反了TOML的语法规则,所以触发ValueError: Found tokens after a closed string. Invalid TOML错误。另外注意两处笔误:loge_file应为log_file,路径..log缺少斜杠,正确路径是../log。

解决方案

根据使用场景,有两种可行处理方式:

1. 原生TOML + 代码层替换占位符

在TOML文件中定义带占位符的文件名,然后在加载配置的代码里替换成实际时间戳:

TOML文件内容:

log_file = "../log/pytest_{timestamp}.log"

加载配置的Python代码示例:

import toml
from datetime import datetime

# 加载TOML配置
config = toml.load("你的配置文件名.toml")
# 生成格式化时间戳(可自定义格式,比如%Y%m%d_%H%M%S)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# 替换占位符得到最终日志路径
final_log_path = config["log_file"].format(timestamp=timestamp)

2. 使用支持模板插值的工具扩展

如果你的TOML文件被支持模板插值的工具加载(比如pytest配置、Poetry的pyproject.toml配合特定插件,或用Jinja2预处理TOML),可以用工具支持的模板语法:

比如用Jinja2预处理TOML时,文件内容可写成:

log_file = "../log/pytest_{{ timestamp }}.log"

随后在预处理代码中传入timestamp变量,渲染后再加载为TOML。

内容的提问来源于stack exchange,提问作者user95525

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:37:06