Crewai框架添加日志功能
一开始看官方文档以为要用@callback
这个注释在一个自定义函数上输出日志,结果弄半天都没有结果,最后发已经有现成的方法了(一开始搜log
都没搜到这个方法)
只要添加这个output_log_file
配置参数即可,由于我的项目只有一个crew,为了完整记录所有的日志,所以我就在上面配置了。官方可以指定文件路径和名称,我就写了一个自动生成文件名的函数,相关代码如下:
def generate_log_fileName(self):
"""
根据当前时间生成日志文件路径
Returns:
str: 完整的日志文件路径
"""
# 日志目录,根据自己项目修改
log_dir = "../../logs"
os.makedirs(log_dir, exist_ok=True)
# 生成精确到秒的时间戳
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# 返回完整日志文件路径
return os.path.join(log_dir, f'crewai_{timestamp}.log')
crew的配置如下
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents, # Automatically created by the @agent decorator
tasks=self.tasks, # Automatically created by the @task decorator
process=Process.sequential,
verbose=True,
output_log_file=self.generate_log_fileName()
)
最终实现的效果如下:
注:当前使用的版本
若版本不同可能会有出入
Framework | Version |
---|---|
CrewAI | 0.86.0 |
crewai-tools | 0.25.8 |
LangChain | 0.3.14 |