콘텐츠로 이동
무료 평가 시작

pdcomm_modbus_logging_configure

함수

이 라이브러리의 선택형 진단 로그를 구성합니다.

int32_t pdcomm_modbus_logging_configure(const uint8_t *input, size_t size)

선언 위치: #include <pdcomm/modbus/pdcomm_modbus.h>

로깅은 기본적으로 꺼져 있으며 Modbus 라이브러리에만 적용됩니다. SECS/GEM 라이브러리에는 별도의 제어가 있습니다. 레코드는 크기가 제한된 큐를 거쳐 JSON Lines 형식으로 비동기 기록되므로, 큐가 가득 차면 프로토콜 호출을 블로킹하지 않고 레코드를 버립니다. 페이로드 바이트는 절대 로그에 기록하지 않습니다.

구성은 다음 멤버를 선택적으로 가지는 JSON 객체입니다.

  • enabled(불리언, 기본값 true): false이면 로깅을 끕니다.
  • level: "error", "warn", "info"(기본값), "debug", "trace" 중 하나입니다.
  • file(문자열 또는 null): 로그 파일 경로입니다. null이거나 지정하지 않으면 stderr에 기록합니다.
  • max_bytes(기본값 10 MiB): 순환 기준 크기이며 8192바이트부터 1 GiB까지입니다.
  • files(기본값 3): 보관할 파일 수이며 1부터 16까지입니다.
  • forensics(불리언, 기본값 false): 주기적인 프로세스 샘플을 추가합니다. debug 또는 trace 수준이 필요합니다.

알 수 없는 멤버는 거부합니다. PDCOMM_LOG(수준 이름 또는 off), PDCOMM_LOG_FILE, PDCOMM_LOG_MAX_BYTES, PDCOMM_LOG_FILES, PDCOMM_LOG_FORENSICS 환경 변수는 라이브러리가 로거를 처음 사용할 때 초기 구성을 제공합니다.

매개변수

이름설명
inputUTF-8 JSON 구성입니다. 호출 중에만 읽습니다.
sizeinput의 크기(바이트)이며 1부터 16384까지입니다.

반환값

성공하면 #PDCOMM_MODBUS_OK를 반환합니다. 입력이 NULL이거나 너무 크거나, JSON이 잘못되었거나, 옵션이 잘못되었거나, 로그 파일을 열 수 없으면 #PDCOMM_MODBUS_INVALID_INPUT을 반환합니다. 그 밖에는 #PDCOMM_MODBUS_INTERNAL_ERROR를 반환합니다.

참고

  • 스레드에 안전합니다. 검증에 실패한 구성은 이전 구성을 그대로 유지하고 상태의 configuration_errors를 증가시킵니다. 로그 기록기가 구성을 적용할 때까지 최대 2초 동안 기다립니다.