跳至内容

登录n8n#

日志记录是用于调试的重要功能。n8n使用winston日志库。

日志流

n8n自托管企业版除了本文档中描述的日志选项外,还包括日志流功能。

设置#

要在n8n中设置日志记录,您需要设置以下环境变量(您也可以在配置文件中设置这些值)

配置文件中的设置 使用环境变量 描述
n8n.log.level N8N_LOG_LEVEL The log output level. The available options are (from lowest to highest level) are error, warn, info, and debug. The default value is info. You can learn more about these options here.
n8n.log.output N8N_LOG_OUTPUT Where to output logs. The available options are console and file. Multiple values can be used separated by a comma (,). console is used by default.
n8n.log.file.location N8N_LOG_FILE_LOCATION The log file location, used only if log output is set to file. By default, <n8nFolderPath>/logs/n8n.log is used.
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
# Set the logging level to 'debug'
export N8N_LOG_LEVEL=debug

# Set log output to both console and a log file
export N8N_LOG_OUTPUT=console,file

# Set a save location for the log file
export N8N_LOG_FILE_LOCATION=/home/jim/n8n/logs/n8n.log

# Set a 50 MB maximum size for each log file
export N8N_LOG_FILE_MAXSIZE=50

# Set 60 as the maximum number of log files to be kept
export N8N_LOG_FILE_MAXCOUNT=60

日志级别#

n8n使用标准日志级别进行报告:

  • silent: 完全不输出任何内容
  • error: 仅输出错误信息,不输出其他内容
  • warn: 输出错误和警告消息
  • info: 包含有关进度的有用信息
  • debug: 最详细的输出级别。n8n会输出大量信息来帮助您调试问题。

开发#

在开发过程中,添加日志消息是一个良好的实践。它有助于调试错误。要为开发配置日志记录,请按照以下指南操作。

实现细节#

n8n使用位于workflow包中的LoggerProxy类。通过传入Logger实例调用LoggerProxy.init()方法,可在使用前初始化该类。

初始化过程仅发生一次。start.ts 文件已为您完成此过程。如果您要从头开始创建新命令,则需要初始化 LoggerProxy 类。

一旦在cli包中创建了Logger实现,就可以通过从导出模块调用getInstance便捷方法来获取它。

查看 start.ts 文件以了解更多关于此流程如何运作的信息。

添加日志#

一旦LoggerProxy类在项目中初始化完成,您可以将其导入到任何其他文件并添加日志。

为所有日志级别提供了便捷方法,因此可以使用格式Logger.('', ...meta)在需要时添加新日志,其中meta表示除message之外所需的任何附加属性。

在上面的示例中,我们使用了上文描述的标准日志级别。message参数是一个字符串,meta是一个数据对象。

1
2
3
4
5
6
7
8
9
// You have to import the LoggerProxy. We rename it to Logger to make it easier

import {
	LoggerProxy as Logger
} from 'n8n-workflow';

// Info-level logging of a trigger function, with workflow name and workflow ID as additional metadata properties

Logger.info(`Polling trigger initiated for workflow "${workflow.name}"`, {workflowName: workflow.name, workflowId: workflow.id});

在创建新的日志记录器时,需要牢记以下有用的标准:

  • 尽可能将日志消息编写得易于人类阅读。例如,始终用引号包裹名称。
  • 在日志消息和元数据中重复信息(如上例中的工作流名称)可能很有用,因为消息更易于搜索,而元数据支持更轻松的过滤。
  • 在所有日志中包含多个ID(例如executionIdworkflowIdsessionId)。
  • 使用节点类型而非节点名称(或两者兼用),这样更加一致,也更容易搜索。

前端日志#

目前前端日志尚不可用。在editor-ui包中使用LoggerLoggerProxy会导致错误。该功能将在未来版本中实现。

优云智算