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。使用 worker 时应设置此值。 |
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
会产生错误。此功能将在未来版本中实现。