n8n 中的日志记录#
日志记录是调试的重要功能。n8n 使用 winston 日志记录库。
日志流
n8n 自托管企业版包含日志流,除了本文档中描述的日志选项外。
设置#
要在 n8n 中设置日志记录,您需要设置以下环境变量(您也可以在配置文件中设置值)
配置文件中的设置 | 使用环境变量 | 描述 |
---|---|---|
n8n.log.level | N8N_LOG_LEVEL | 日志输出级别。可用选项(从最低到最高级别)为 error、warn、info 和 debug。默认值为 info 。您可以在这里了解更多有关这些选项的信息。 |
n8n.log.output | N8N_LOG_OUTPUT | 日志输出位置。可用选项为 console 和 file 。可以使用多个值,用逗号(, )分隔。默认使用 console 。 |
n8n.log.file.location | N8N_LOG_FILE_LOCATION | 日志文件位置,仅在日志输出设置为文件时使用。默认情况下,使用 <n8nFolderPath>/logs/n8n.log 。 |
n8n.log.file.maxsize | N8N_LOG_FILE_SIZE_MAX | 每个日志文件的最大大小(MB)。默认情况下,n8n 使用 16 MB。 |
n8n.log.file.maxcount | N8N_LOG_FILE_COUNT_MAX | 要保留的最大日志文件数。默认值为 100。使用工作进程时应设置此值。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
日志级别#
n8n 使用标准的日志级别来报告:
silent
: 不输出任何内容error
: 只输出错误,不输出其他内容warn
: 输出错误和警告消息info
: 包含有关进度的有用信息debug
: 最详细的输出。n8n 输出大量信息来帮助您调试问题。
开发#
在开发过程中,添加日志消息是一个好习惯。它有助于调试错误。要为开发配置日志记录,请按照以下指南进行操作。
实现细节#
n8n 使用位于 workflow
包中的 LoggerProxy
类。通过传入 Logger
实例调用 LoggerProxy.init()
来在使用之前初始化该类。
初始化过程只发生一次。start.ts
文件已经为您完成了这个过程。如果您从头创建一个新命令,您需要初始化 LoggerProxy
类。
一旦在 cli
包中创建了 Logger
实现,就可以通过从导出的模块调用 getInstance
便利方法来获得它。
查看 start.ts 文件以了解更多关于此过程如何工作的信息。
添加日志#
一旦在项目中初始化了 LoggerProxy
类,您就可以将其导入到任何其他文件中并添加日志。
为所有日志级别提供了便利方法,因此可以在需要时使用格式 Logger.<logLevel>('<message>', ...meta)
添加新日志,其中 meta
表示除 message
之外所需的任何其他属性。
在上面的示例中,我们使用了上面描述的标准日志级别。message
参数是一个字符串,meta
是一个数据对象。
1 2 3 4 5 6 7 8 9 |
|
创建新日志记录器时,需要记住的一些有用标准是:
- 尽可能创建人类可读的日志消息。例如,始终将名称用引号括起来。
- 在日志消息和元数据中重复信息(如上例中的工作流名称)会很有用,因为消息更容易搜索,元数据可以更容易地进行筛选。
- 在所有日志中包含多个 ID(例如
executionId
、workflowId
和sessionId
)。 - 使用节点类型而不是节点名称(或两者都使用),因为这样更一致,所以更容易搜索。
前端日志#
目前,前端日志不可用。在 editor-ui
包中使用 Logger
或 LoggerProxy
会产生错误。此功能将在将来的版本中实现。
此页面是否
微信
🚀 与作者交流
关注公众号

n8n实战笔记
📚 教程 💡 案例 🔧 技巧
📚 教程 💡 案例 🔧 技巧
添加微信

1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持
⚡ 快答 🎯 定制 🚀 支持