pdcomm_logging_status
함수
현재 로깅 상태를 JSON 객체로 복사합니다.
PdcommStatus pdcomm_logging_status(uint8_t *output, size_t capacity, size_t *required)이 객체의 schema_version은 1이며, 활성 구성(enabled, level, level_name, sink, max_bytes, files, forensics), 큐 및 레코드 한도, 그리고 written, dropped, write_errors, configuration_errors 카운터를 보고합니다. 바이트는 종료 NUL이 없는 UTF-8 JSON입니다.
매개변수
| 이름 | 설명 |
|---|---|
output | JSON 바이트를 받을 대상 버퍼입니다. capacity가 0일 때만 NULL일 수 있습니다. |
capacity | output의 크기(바이트)입니다. |
required | JSON 텍스트의 길이를 받습니다. NULL이 아니어야 합니다. |
반환값
텍스트를 복사하면 #PDCOMM_OK를 반환합니다. capacity가 *required보다 작으면 #PDCOMM_BUFFER_TOO_SMALL을 반환하며 출력은 변경하지 않습니다. required가 NULL이거나, capacity가 0이 아닌데 output이 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다(*required는 기록하지 않습니다). 직렬화에 실패했거나 패닉(panic)을 격리했으면 #PDCOMM_INTERNAL_ERROR를 반환합니다.
참고
- 로깅이 활성 상태인 동안 카운터가 바뀌므로 크기 조회와 복사 사이에 길이가 늘어날 수 있습니다. 여유 공간을 두고 할당하고, 호출이 #PDCOMM_BUFFER_TOO_SMALL을 반환하면 다시 호출합니다.
- 스레드 안전성: 어느 스레드에서나 호출할 수 있습니다.