콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

n8n에서의 로깅#

로깅은 디버깅에 중요한 기능입니다. n8n은 winston 로깅 라이브러리를 사용합니다.

로그 스트리밍

n8n 자체 호스팅 엔터프라이즈 tier에는 이 문서에 설명된 로깅 옵션 외에 로그 스트리밍도 포함됩니다.

설정#

n8n에서 로깅을 설정하려면 다음 환경 변수를 설정해야 합니다. (값은 구성 파일에서 설정할 수도 있습니다.)

구성 파일의 설정 환경 변수를 사용하여 설명
n8n.log.level N8N_LOG_LEVEL 로그 출력 수준입니다. 사용 가능한 옵션은 (최저 수준에서 최고 수준) error, warn, info, debug입니다. 기본 값은 info입니다. 이러한 옵션에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
n8n.log.output N8N_LOG_OUTPUT 로그 출력을 어디에 할지를 나타냅니다. 사용 가능한 옵션은 consolefile입니다. 여러 값을 쉼표(,)로 구분하여 사용할 수 있습니다. 기본적으로 console이 사용됩니다.
n8n.log.file.location N8N_LOG_FILE_LOCATION 로그 출력을 file로 설정한 경우에만 사용되는 로그 파일 위치입니다. 기본적으로 <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
# 로깅 레벨을 'debug'로 설정
export N8N_LOG_LEVEL=debug

# 로그 출력을 콘솔과 로그 파일로 모두 설정
export N8N_LOG_OUTPUT=console,file

# 로그 파일을 저장할 위치를 설정
export N8N_LOG_FILE_LOCATION=/home/jim/n8n/logs/n8n.log

# 각 로그 파일의 최대 크기를 50 MB로 설정
export N8N_LOG_FILE_MAXSIZE=50

# 유지할 로그 파일의 최대 개수를 60으로 설정
export N8N_LOG_FILE_MAXCOUNT=60

로그 레벨#

n8n은 표준 로그 레벨을 사용하여 보고합니다:

  • silent: 아무것도 출력하지 않음
  • error: 오류만 출력하고 그 외에는 출력하지 않음
  • warn: 오류 및 경고 메시지를 출력
  • info: 진행 상황에 대한 유용한 정보를 포함
  • debug: 가장 상세한 출력. n8n은 문제를 디버깅하는데 도움이 되는 많은 정보를 출력합니다.

개발#

개발 중에는 로그 메시지를 추가하는 것이 좋은 방법입니다. 이는 오류 디버깅에 도움을 줍니다. 개발을 위한 로깅 구성 방법은 아래 가이드를 따르세요.

구현 세부사항#

n8n은 workflow 패키지에 위치한 LoggerProxy 클래스를 사용합니다. LoggerProxy.init()을 호출하고 Logger 인스턴스를 전달하여 이 클래스를 초기화합니다.

초기화 과정은 한 번만 발생합니다. start.ts 파일이 이 과정을 이미 수행합니다. 새 명령을 처음부터 만들고 있는 경우, LoggerProxy 클래스를 초기화해야 합니다.

cli 패키지에서 Logger 구현이 생성되면, 내보낸 모듈에서 getInstance 편리한 메서드를 호출하여 얻을 수 있습니다.

이 프로세스 작동 방식에 대한 자세한 내용은 start.ts 파일을 확인하세요.

로그 추가#

LoggerProxy 클래스가 프로젝트에서 초기화되면, 이를 다른 파일에 가져와서 로그를 추가할 수 있습니다.

모든 로그 레벨에 대한 편리한 메서드가 제공되므로, 필요할 때마다 Logger.<logLevel>('<message>', ...meta) 형식을 사용하여 새 로그를 추가할 수 있습니다. 여기서 metamessage 외에 원하는 추가 속성을 나타냅니다.

위의 예에서 우리는 에서 설명한 표준 로그 레벨을 사용합니다. message 인수는 문자열이고, meta는 데이터 객체입니다.

1
2
3
4
5
6
7
8
9
// LoggerProxy를 가져와야 합니다. 쉽게 사용하기 위해 Logger로 이름을 변경합니다.

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

// 워크플로우 이름과 워크플로우 ID를 추가 메타데이터 속성으로 포함한 트리거 함수의 정보 수준 로그

Logger.info(`워크플로우 "${workflow.name}"에 대한 폴링 트리거가 시작되었습니다.`, {workflowName: workflow.name, workflowId: workflow.id});

새 로거를 생성할 때 염두에 두어야 할 몇 가지 유용한 기준은 다음과 같습니다.

  • 로그 메시지는 가능한 한 읽기 쉽도록 작성합니다. 예를 들어, 항상 이름을 따옴표로 감싸십시오.
  • 위의 예와 같이 로그 메시지와 메타데이터에 정보를 중복하는 것은 유용할 수 있으며, 이는 메시지가 검색하기 더 쉽고 메타데이터는 필터링을 더 쉽게 해줍니다.
  • 모든 로그에 여러 ID(예: executionId, workflowId, sessionId)를 포함합니다.
  • 노드 이름 대신 노드 유형을 사용하거나 두 가지 모두 사용하는 것이 더 일관성이 있어 검색이 더 쉬워집니다.

프론트엔드 로그#

현재 프론트엔드 로그는 사용할 수 없습니다. Logger 또는 LoggerProxy를 사용하면 editor-ui 패키지에서 오류가 발생합니다. 이 기능은 향후 버전에서 구현될 예정입니다.

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!