로깅

logger 모듈은 debug, info, warn 및 error level에서 structured message를 작성합니다.

이 페이지는 API 레퍼런스입니다. 각 snippet은 독립적인 logging operation이며 원하는 logger 설정을 가진 execution context를 전제로 합니다.

log 호출은 값을 반환하지 않습니다. execution context에서 제공되는 경우 각 호출은 현재 frame에서 파생된 process pid와 source location도 추가합니다.

로딩

local logger = require("logger")

로그 레벨

logger:debug

debug-level log message를 작성합니다.

logger:debug("message", {key = "value"})

logger:info

info-level log message를 작성합니다.

logger:info("message", {key = "value"})

logger:warn

warning-level log message를 작성합니다.

logger:warn("message", {key = "value"})

logger:error

error-level log message를 작성합니다.

logger:error("message", {key = "value"})
파라미터 타입 설명
message string 로그 메시지
fields table? 컨텍스트 키-값 쌍

네 가지 log-level method는 모두 같은 parameter를 받습니다.

string key만 field name이 됩니다. string, number, integer, boolean, error 및 structured Lua value는 log field로 변환되고 non-string key는 무시됩니다.

logger:error에서 이름이 error인 field는 error field로 emit되고 나머지 field를 처리하기 전에 제공된 table에서 제거됩니다. error entry를 그대로 유지해야 한다면 해당 table을 재사용하지 마십시오.

로거 커스터마이징

logger:with

영구 필드를 포함한 자식 로거를 생성합니다.

local function request_logger(request_id)
    return logger:with({request_id = request_id})
end

request_logger("req-123"):info("message")
파라미터 타입 설명
fields table 모든 로그에 첨부할 필드

반환: Logger

원본 logger는 변경되지 않습니다. child logger는 추가 with 및 named 호출로 chain할 수 있습니다.

logger:named

명명된 자식 로거를 생성합니다.

local named = logger:named("auth")
named:info("message")
파라미터 타입 설명
name string 로거 이름

반환: Logger

빈 name은 Lua argument error를 raise합니다. structured errors.INVALID 값으로 반환되지 않습니다.

logger:named("")는 에러 값을 반환하는 대신 Lua 인자 에러(name cannot be empty)를 발생시킵니다. 로깅 메서드는 아무것도 반환하지 않습니다.

에러 처리는 에러 처리를 참조하세요.