id: logging title: 로깅 sidebar_label: 로깅


개요

Loom 설정가능한 로깅을 내장하고 있습니다. 사용자는 로그 레벨과 로그 목적지를 설정할 수 있습니다.

Loom SDK 로깅

로그 레벨 설정하기

Loom sdk에는 두가지 유형의 로그가 있습니다. 첫번째는 블록체인 트랜잭션과 컨센서스 이벤트에 관한 로그입니다. 두번째는 loom sdk가 생성한 로그와 내보낸 이벤트 같은 것들에 관한 것입니다.

로그 레벨을 설정하려면 여러분의 loom.yaml 파일을 다음과 같이 설정하세요.

LoomLogLevel: debug # loom sdk에서 내보내는 이벤트에 대한 로그 레벨 설정
BlockchainLogLevel: error # 블록체인 로그에 관한 로그 레벨 설정

LoomLogLevelBlockchainLogLevel에 대한 기본값은 각각 infoerror입니다.

로그 목적지 설정하기

현재 loom 로그에 대해서는 파일 타겟을 지원합니다.

LogDestination: "file://loom.log" # loom.log는 기본 타겟입니다.

stderr로 로깅을 하려면 file://-로 목적지를 지정하세요

컨트랙트 로깅

로그 레벨와 목적지에 대한 설정이 분리되어 있듯이 컨트랙트 로깅도 분리되어 있습니다. 이것들은 환경 변수를 사용해서 세팅됩니다. 예: CONTRACT_LOG_LEVEL=debug CONTRACT_LOG_DESTINATION="file://-" $LOOM_EXE run

이것은 컨트랙트 로그 레벨을 debug로 목적지를 stderr로 설정합니다. 로그 레벨과 목적지에 대한 기본값은 각각 info and file://contract.log 입니다.

컨트랙트에서 로깅하기

컨트랙트 context에는 구조화된 로깅을 위해 사용될 수 있는 미리 구성된 logger를 가지고 있습니다. 예를 들면

ctx.Logger().Info("Created account", "owner", owner, "address", addr)

이것은 다음과 같은 로그 라인을 생성합니다

ts=2018-05-13T02:06:49.817229589Z module=loom level=info _msg="Created account" owner=godbole4 address="\ufffd8\ufffd\ufffd\ufffd\ufffd\ufffd$Y+H\ufffd\u0012\u000c]\u001a\ufffd\ufffd\ufffd\ufffd"

Context logger에서 사용될 수 있는 메소드는 Error, Warn, Info, and Debug입니다