Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

nl::프로필:프로필::Logging

#include <src/lib/profiles/data-management/Current/LoggingManagement.h>

메모리 내 이벤트 로그를 관리하기 위한 클래스입니다.

요약

생성자 및 소멸자

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement 생성자입니다.
LoggingManagement(void)
LoggingManagement 기본 생성자입니다.

공개 함수

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
이벤트 로깅 프로토콜에 따라 이벤트 헤더 및 데이터를 작성하는 도우미 함수입니다.
CancelShutdownInProgress(void)
void
mShutdownInProgress 플래그를 false로 설정합니다.
CheckShouldRunWDM(void)
bool
업로드를 위해 예약되지 않은 이벤트 버퍼의 바이트 수에 따라 이벤트를 오프로드할지 결정합니다.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
지정된 이벤트 ID 이후 지정된 중요도의 이벤트를 검색하는 함수입니다.
GetBytesWritten(void) const
uint32_t
인스턴스화 이후 이 로그에 작성된 총 바이트 수 (모든 이벤트 중요도 기준)를 가져옵니다.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
메모리 내 로그 버퍼를 검사하는 데 유용한 도우미 메서드입니다.
GetFirstEventID(ImportanceType inImportance)
특정 중요도 수준으로 현재 저장된 첫 번째 이벤트 ID를 가져옵니다.
GetLastEventID(ImportanceType inImportance)
특정 중요도 수준의 가장 최근에 판매된 ID를 가져옵니다.
IsShutdownInProgress(void)
bool
mShutdownInProgress 플래그를 확인합니다.
IsValid(void)
bool
IsValid는 LoggingManagement 인스턴스가 유효한지 여부를 반환합니다.
LoadEvents(TLVReader & reader)
이전에 지속된 Weave 이벤트 로드
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
옵션과 함께 콜백을 통해 이벤트를 로깅합니다.
MarkShutdownInProgress(void)
void
mShutdownInProgress 플래그를 true로 설정합니다.
NotifyEventsDelivered(ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
void
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID)
외부에 저장된 이벤트 집합을 등록하는 공개 API입니다.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
외부에 저장된 이벤트 집합을 등록하는 공개 API입니다.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
외부에 저장된 이벤트 집합을 등록하는 공개 API입니다.
ScheduleFlushIfNeeded(bool inFlushRequested)
로그 오프로드 작업을 예약합니다.
SerializeEvents(TLVWriter & writer)
모든 중요도 유형의 Weave 이벤트를 직렬화합니다.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
이 로깅 하위 시스템에서 사용할 WeaveExchangeManager를 설정합니다.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
할당된 이벤트 ID에 해당하는 이벤트 쓰기를 건너뛰는 도우미 함수입니다.
ThrottleLogger(void)
void
ThrottleLogger는 효과적인 로깅 수준을 프로덕션 수준으로 높입니다.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
외부에 저장된 이벤트 집합을 등록 취소할 수 있는 공개 API입니다.
UnthrottleLogger(void)
void
UnThretleLogger는 유효한 로깅 수준을 구성된 로깅 수준으로 복원합니다.

공개 정적 함수

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
LoggingManagement 객체를 만들고 제공된 리소스로 로깅 관리 하위 시스템을 초기화합니다.
DestroyLoggingManagement(void)
void
종료 시 필요한 작업을 모두 수행합니다.
GetInstance(void)

공개 함수

BlitEvent

WEAVE_ERROR BlitEvent(
  EventLoadOutContext *aContext,
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

이벤트 로깅 프로토콜에 따라 이벤트 헤더 및 데이터를 작성하는 도우미 함수입니다.

세부정보
매개변수
[in,out] aContext
EventLoadOutContext, 버퍼의 스테이트풀(Stateful) 정보로 초기화됨. 이 컨텍스트를 사용하여 BlitEvent가 상태를 업데이트하고 보존합니다.
[in] inSchema
스키마: 이 이벤트의 중요도, 프로필 ID, 구조 유형을 정의합니다.
[in] inEventWriter
이벤트 데이터를 직렬화하기 위해 호출할 콜백입니다.
[in] inAppData
콜백의 애플리케이션 컨텍스트입니다.
[in] inOptions
이 이벤트와 관련된 타임스탬프와 기타 태그를 설명하는 EventOptions

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

mShutdownInProgress 플래그를 false로 설정합니다.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

업로드를 위해 예약되지 않은 이벤트 버퍼의 바이트 수에 따라 이벤트를 오프로드할지 결정합니다.

함수의 동작은 WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD 상수를 통해 제어됩니다. 시스템에서 WDM 알림이 전송된 후 이 바이트보다 더 많은 바이트를 작성한 경우 함수는 NotificationEngine을 트리거할 시간임을 나타냅니다.

세부정보
반환 값
true
이벤트를 오프로드해야 합니다.
false
그렇지 않은 경우 다음 단계를 따릅니다.

FetchEvents타입

WEAVE_ERROR FetchEventsSince(
  nl::Weave::TLV::TLVWriter & ioWriter,
  ImportanceType inImportance,
  event_id_t & ioEventID
)

지정된 이벤트 ID 이후 지정된 중요도의 이벤트를 검색하는 함수입니다.

nl::Weave::TLV::TLVwriter, 중요도 유형, 이벤트 ID가 주어지면 함수는 지정된 이벤트 이후에 지정된 중요도의 이벤트를 가져옵니다. 함수는 nl::Weave::TLV::TLVwriter 또는 로그의 공간이 부족할 때까지 이벤트를 계속 가져옵니다. 이 함수는 이벤트 경계에 대한 이벤트 쓰기를 종료합니다.

세부정보
매개변수
[in] ioWriter
이벤트 스토리지에 사용할 작성자
[in] inImportance
가져올 이벤트의 중요성
[in,out] ioEventID
입력 시 가져온 이벤트가 발생하기 직전에 이벤트의 ID입니다. 완료 시 마지막으로 가져온 이벤트의 ID입니다.
반환 값
WEAVE_END_OF_TLV
함수가 지정된 중요도 수준에서 사용 가능한 로그 항목의 끝에 도달했습니다.
WEAVE_ERROR_NO_MEMORY
iowriter의 함수 공간이 부족해 로그에서 더 많은 이벤트를 사용할 수 있습니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
iowriter의 함수 공간이 부족해 로그에서 더 많은 이벤트를 사용할 수 있습니다.

GetBytes쓰기됨

uint32_t GetBytesWritten(
  void
) const 

인스턴스화 이후 이 로그에 작성된 총 바이트 수 (모든 이벤트 중요도 기준)를 가져옵니다.

세부정보
반환
로그에 기록된 바이트 수입니다.

GetEventReader

WEAVE_ERROR GetEventReader(
  nl::Weave::TLV::TLVReader & ioReader,
  ImportanceType inImportance
)

메모리 내 로그 버퍼를 검사하는 데 유용한 도우미 메서드입니다.

세부정보
매개변수
[in,out] ioReader
이벤트 로그에서 백업 저장소로 초기화되는 판독기 참조
[in] inImportance
독자의 시작 중요성 이 경우 시작 중요도는 다소 직관적입니다. 더 중요한 이벤트는 전용 버퍼 외에도 덜 중요한 이벤트와 버퍼를 공유합니다. 따라서 Debug SDK는 디버그 중요도가 전달될 때 최소 데이터를 순회합니다.
반환
WEAVE_NO_ERROR 무조건.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

특정 중요도 수준으로 현재 저장된 첫 번째 이벤트 ID를 가져옵니다.

세부정보
매개변수
inImportance
중요도 수준
반환
event_id_t 이벤트 중요도를 위해 현재 저장된 이벤트 ID가 처음임

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

특정 중요도 수준의 가장 최근에 판매된 ID를 가져옵니다.

세부정보
매개변수
inImportance
중요도 수준
반환
event_id_t가 가장 중요한 이벤트 ID의 이벤트 ID입니다.

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

mShutdownInProgress 플래그를 확인합니다.

유효

bool IsValid(
  void
)

IsValid는 LoggingManagement 인스턴스가 유효한지 여부를 반환합니다.

세부정보
반환 값
true
인스턴스가 유효함 (적절한 지원 스토어로 초기화됨)
false
그렇지 않은 경우 다음 단계를 따릅니다.

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

이전에 지속된 Weave 이벤트 로드

로그 이벤트

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

옵션과 함께 콜백을 통해 이벤트를 로깅합니다.

이 함수는 Event작성자Funct 및 앱별 appData 컨텍스트로 표시되는 이벤트를 로깅합니다. 이 함수는 이벤트 메타데이터를 작성하고 nl::Weave::TLV::TLVwriter 참조 및 inAppData 컨텍스트를 사용하여 inEventWriter를 호출하여 사용자 코드가 이벤트 로그에 직접 이벤트 데이터를 내보낼 수 있도록 합니다. 이러한 형태의 이벤트 로깅은 이벤트 데이터가 타겟 버퍼로 직접 직렬화되므로 메모리 소비를 최소화합니다. 이벤트 데이터에는 inProfileIDinEventType로 식별되는 스키마 내에서 해석되는 컨텍스트 태그가 포함되어야 합니다. 첫 번째 요소의 태그는 무시됩니다. 이벤트 로깅 시스템은 eventData 태그로 대체됩니다.

스키마 중요도가 LoggingConfiguration에 지정된 로깅 기준을 초과하면 이벤트가 로깅됩니다. 이벤트 중요도가 현재 임계값을 충족하지 않으면 드롭되고 함수는 이벤트 ID로 0를 반환합니다.

이 호출의 변형에서는 호출자가 EventOptions의 조합을 설정할 수 있습니다.

  • 타임스탬프: 호출 시점의 현재 시간이 0일 때
  • 이벤트 소스 (이벤트 소스 및 속성 ID)의 "root" 섹션입니다. NULL인 경우 기본값은 현재 기기입니다. 이벤트는 호출 중인 기기와 관련된 것으로 표시됩니다.
  • 이벤트 ID 그룹화를 위한 관련 이벤트 ID. 관련 이벤트 ID가 0인 경우 해당 이벤트는 다른 이벤트와 관련이 없는 것으로 표시됩니다.
  • 긴급: 기본적으로 긴급하지 않음

세부정보
매개변수
[in] inSchema
스키마: 이 이벤트의 중요도, 프로필 ID, 구조 유형을 정의합니다.
[in] inEventWriter
이벤트 데이터를 실제로 직렬화하기 위해 호출할 콜백
[in] inAppData
콜백의 애플리케이션 컨텍스트입니다.
[in] inOptions
이벤트 메타데이터의 옵션입니다. NULL일 수 있습니다.
반환
event_id_t 이벤트가 로그에 기록된 경우의 이벤트 ID이며, 그렇지 않으면 0입니다.

로깅 관리

 LoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement 생성자입니다.

LogStorageResources 배열을 사용하여 LoggingManagement를 초기화합니다. 배열은 각 유효 중요도 수준에 대한 리소스를 제공해야 하며, 배열 요소는 중요도의 숫자 값을 점점 높여야 하며, 중요도가 떨어지는 배열에 있는 첫 번째 요소는 가장 중요한 이벤트에 할당된 리소스에 해당하고, 마지막 요소는 가장 중요하지 않은 이벤트에 해당합니다.

세부정보
매개변수
[in] inMgr
WeaveExchangeManager: 이 로깅 하위 시스템과 함께 사용됨
[in] inNumBuffers
inLogStorageResources 배열의 요소 수
[in] inLogStorageResources
각 중요도 수준에 대한 LogStorageResources 배열입니다.

로깅 관리

 LoggingManagement(
  void
)

LoggingManagement 기본 생성자입니다.

주로 컴파일러에 도움이 되도록 제공됩니다.

세부정보
반환

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

mShutdownInProgress 플래그를 true로 설정합니다.

AlertEvents전송

void NotifyEventsDelivered(
  ImportanceType inImportance,
  event_id_t inLastDeliveredEventID,
  uint64_t inRecipientNodeID
)

registerEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  NotifyExternalEventsEvictedFunct inEvictedCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

외부에 저장된 이벤트 집합을 등록하는 공개 API입니다.

FetchExternalEventsFunct 형식의 콜백을 등록합니다. 이 API를 사용하려면 플랫폼에서 등록 시 이벤트 수를 알아야 합니다. 내부 작업 시 이 숫자는 일정해야 합니다. 이 API는 플랫폼에서 특정 이벤트 ID를 등록하도록 허용하지 않으므로 플랫폼에서 고유한 이벤트 ID를 가진 이벤트의 보관을 유지하는 것을 방지합니다.

구독자가 등록 취소되지 않은 범위에서 범위 내의 이벤트 ID를 가져오려고 시도할 때마다 콜백이 호출됩니다.

외부 제공업체에 이벤트가 전달되었을 때 및 외부 이벤트 객체가 제거될 때 외부 제공자가 알림을 받도록 하려는 경우에 이 함수를 사용해야 합니다.

이벤트가 전달되면 외부 공급자가 수신자의 노드 ID와 이 수신자에게 전달된 마지막 이벤트의 ID와 함께 알림을 받습니다. 외부 제공업체는 동일한 이벤트 ID에 대해 여러 번 알림을 받을 수 있습니다. 핸들러에 관한 특별한 제한사항이 없습니다. 특히 핸들러는 외부 이벤트 ID를 등록 취소할 수 있습니다.

외부 이벤트 객체가 로그 버퍼에서 제거되면 외부 제공업체도 외부 이벤트 객체의 사본과 함께 알림을 받습니다.

ExternalEvents 구조체 포인터는 실패 시 NULL이고, 그렇지 않으면 콜백에 할당된 시작 및 종료 이벤트 ID로 채워집니다. 이 포인터는 이벤트 세트를 등록 취소하는 데 사용해야 합니다.

콜백이 구현해야 하는 항목에 관한 자세한 내용은 FetchExternalEventsFunct 문서를 참고하세요.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inFetchCallback
외부 이벤트를 가져오기 위한 등록 콜백
[in] inNotifyCallback
전송 알림 등록 콜백
[in] inEvictedCallback
제거 알림 등록 콜백
[in] inNumEvents
이 세트의 이벤트 수
[out] outLastEventID
event_id_t에 대한 포인터. 외부 이벤트가 등록되면 함수는 외부 이벤트 블록의 마지막 이벤트 ID에 해당하는 이벤트 ID를 저장합니다. 매개변수는 NULL일 수 있습니다.
반환 값
WEAVE_ERROR_NO_MEMORY
사용할 수 있는 콜백 슬롯이 더 이상 없는 경우
WEAVE_ERROR_INVALID_ARGUMENT
등록할 null 함수 콜백이거나 이벤트가 없습니다.
WEAVE_NO_ERROR
성공했습니다.

registerEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

외부에 저장된 이벤트 집합을 등록하는 공개 API입니다.

FetchExternalEventsFunct 형식의 콜백을 등록합니다. 이 API를 사용하려면 플랫폼에서 등록 시 이벤트 수를 알아야 합니다. 내부 작업 시 이 숫자는 일정해야 합니다. 이 API는 플랫폼에서 특정 이벤트 ID를 등록하도록 허용하지 않으므로 플랫폼에서 고유한 이벤트 ID를 가진 이벤트의 보관을 유지하는 것을 방지합니다.

구독자가 등록 취소되지 않은 범위에서 범위 내의 이벤트 ID를 가져오려고 시도할 때마다 콜백이 호출됩니다.

이 함수 변형은 외부 제공업체가 이벤트가 전달되었을 때 외부 제공업체가 알림을 받도록 하고 외부 이벤트 객체가 제거될 때는 알림을 받지 않을 때 사용해야 합니다. 이벤트가 전달되면 외부 공급자가 수신자의 노드 ID와 이 수신자에게 전달된 마지막 이벤트의 ID와 함께 알림을 받습니다. 외부 제공업체는 동일한 이벤트 ID에 대해 여러 번 알림을 받을 수 있습니다. 핸들러에 관한 특별한 제한사항이 없습니다. 특히 핸들러는 외부 이벤트 ID를 등록 취소할 수 있습니다.

ExternalEvents 구조체 포인터는 실패 시 NULL이고, 그렇지 않으면 콜백에 할당된 시작 및 종료 이벤트 ID로 채워집니다. 이 포인터는 이벤트 세트를 등록 취소하는 데 사용해야 합니다.

콜백이 구현해야 하는 항목에 관한 자세한 내용은 FetchExternalEventsFunct 문서를 참고하세요.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inCallback
외부 이벤트를 가져오기 위한 등록 콜백
[in] inNotifyCallback
전송 알림 등록 콜백
[in] inNumEvents
이 세트의 이벤트 수
[out] outLastEventID
event_id_t에 대한 포인터. 외부 이벤트가 등록되면 함수는 외부 이벤트 블록의 마지막 이벤트 ID에 해당하는 이벤트 ID를 저장합니다. 매개변수는 NULL일 수 있습니다.
반환 값
WEAVE_ERROR_NO_MEMORY
사용할 수 있는 콜백 슬롯이 더 이상 없는 경우
WEAVE_ERROR_INVALID_ARGUMENT
등록할 null 함수 콜백이거나 이벤트가 없습니다.
WEAVE_NO_ERROR
성공했습니다.

registerEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

외부에 저장된 이벤트 집합을 등록하는 공개 API입니다.

FetchExternalEventsFunct 형식의 콜백을 등록합니다. 이 API를 사용하려면 플랫폼에서 등록 시 이벤트 수를 알아야 합니다. 내부 작업 시 이 숫자는 일정해야 합니다. 이 API는 플랫폼에서 특정 이벤트 ID를 등록하도록 허용하지 않으므로 플랫폼에서 고유한 이벤트 ID를 가진 이벤트의 보관을 유지하는 것을 방지합니다.

구독자가 등록 취소되지 않은 범위에서 범위 내의 이벤트 ID를 가져오려고 시도할 때마다 콜백이 호출됩니다.

외부 이벤트가 전송되었거나 외부 이벤트 객체가 제거될 때 외부 제공업체가 알림을 받으려고 할 때 이 함수를 사용하는 것이 좋습니다.

ExternalEvents 구조체 포인터는 실패 시 NULL이고, 그렇지 않으면 콜백에 할당된 시작 및 종료 이벤트 ID로 채워집니다. 이 포인터는 이벤트 세트를 등록 취소하는 데 사용해야 합니다.

콜백이 구현해야 하는 항목에 관한 자세한 내용은 FetchExternalEventsFunct 문서를 참고하세요.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inCallback
외부 이벤트를 가져오기 위한 등록 콜백
[in] inNumEvents
이 세트의 이벤트 수
[out] outLastEventID
event_id_t에 대한 포인터. 외부 이벤트가 등록되면 함수는 외부 이벤트 블록의 마지막 이벤트 ID에 해당하는 이벤트 ID를 저장합니다. 매개변수는 NULL일 수 있습니다.
반환 값
WEAVE_ERROR_NO_MEMORY
사용할 수 있는 콜백 슬롯이 더 이상 없는 경우
WEAVE_ERROR_INVALID_ARGUMENT
등록할 null 함수 콜백이거나 이벤트가 없습니다.
WEAVE_NO_ERROR
성공했습니다.

ScheduleFlushIfNeed

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

로그 오프로드 작업을 예약합니다.

이 함수는 작업 오프로드 프로세스를 예약할지 여부를 결정하며 이 경우 LoggingFlushHandler가 Weave 스레드에서 비동기식으로 실행되도록 예약합니다.

플러시를 예약하는 결정은 다음 세 가지 요소에 따라 달라집니다.

버퍼를 플러시하는 명시적 요청

이벤트 버퍼의 상태와 이벤트 소비자와 아직 동기화되지 않은 데이터 양

이미 대기 중인 요청 플러시 요청 이벤트가 있는지 여부입니다.

플러시를 예약하는 명시적 요청은 입력 매개변수를 통해 전달됩니다.

일반적으로 자동 플러시는 이벤트 버퍼에 새 오프로드를 시작하기에 충분한 데이터가 포함된 경우 예약됩니다. 오프로드 전략에 따라 오프로드 간의 최소 및 최대 시간과 같은 추가 트리거도 고려될 수 있습니다.

이벤트 로그의 대기 상태는 mUploadRequested 변수로 표시됩니다. 이 함수는 여러 스레드에서 호출할 수 있으므로 알림이 전송되기 전에 중복 LoggingFlushHandler가 예약되지 않도록 하려면 mUploadRequested을 원자적으로 읽고 설정해야 합니다.

세부정보
매개변수
inRequestFlush
내부 버퍼 관리 정책에 관계없이 플러시를 예약해야 하는지 여부를 나타내는 부울 값입니다.
반환 값
WEAVE_ERROR_INCORRECT_STATE
LoggingManagement 모듈이 완전히 초기화되지 않았습니다.
WEAVE_NO_ERROR
성공했습니다.

SerialEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

모든 중요도 유형의 Weave 이벤트를 직렬화합니다.

WeaveCircularTLVBuffer의 이벤트 및 연결된 상태를 제공된 버퍼로 직렬화합니다.

이 메서드는 절전 모드 동안 RAM을 유지하지 않는 기기에서 사용하기 위한 것이며, 절전 모드로 전환되기 전에 이벤트를 유지하여 이벤트가 손실되는 것을 방지할 수 있습니다.

SetBDX업로더

void SetBDXUploader(
  LogBDXUpload *inUploader
)

세트 교환 관리자

WEAVE_ERROR SetExchangeManager(
  nl::Weave::WeaveExchangeManager *inMgr
)

이 로깅 하위 시스템에서 사용할 WeaveExchangeManager를 설정합니다.

일부 플랫폼의 경우 위의 CreateLoggingManagement()와 별도로 발생해야 할 수 있습니다.

세부정보
매개변수
[in] inMgr
WeaveExchangeManager: 이 로깅 하위 시스템과 함께 사용됨

LoggingLogging 엔드포인트

WEAVE_ERROR SetLoggingEndpoint(
  event_id_t *inEventEndpoints,
  size_t inNumImportanceLevels,
  size_t & outLoggingPosition
)

건너뛰기 이벤트

void SkipEvent(
  EventLoadOutContext *aContext
)

할당된 이벤트 ID에 해당하는 이벤트 쓰기를 건너뛰는 도우미 함수입니다.

세부정보
매개변수
[in,out] aContext
EventLoadOutContext, 버퍼의 스테이트풀(Stateful) 정보로 초기화됨. 이 컨텍스트를 사용하여 BlitEvent가 상태를 업데이트하고 보존합니다.

스로틀 로거

void ThrottleLogger(
  void
)

ThrottleLogger는 효과적인 로깅 수준을 프로덕션 수준으로 높입니다.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

외부에 저장된 이벤트 집합을 등록 취소할 수 있는 공개 API입니다.

콜백을 등록 취소하면 LoggingManagement가 일부 이벤트에 대한 콜백을 호출하지 못합니다. LoggingManagement는 더 이상 구독자에게 이러한 이벤트 ID를 전송하지 않습니다.

인텐트는 한 번에 하나의 함수만 이벤트 함수를 제공하는 것이 목적입니다. 동일한 함수를 사용하여 새 이벤트 세트를 등록해야 하는 경우 먼저 콜백을 등록 취소한 다음 다시 등록해야 합니다. 즉, 원본 일정 집합을 더 이상 가져올 수 없습니다.

이 함수는 조건 없이 성공합니다. 콜백이 등록된 적이 없거나 이미 등록 취소되었다면 노옵스(no-ops)입니다.

세부정보
매개변수
[in] inImportance
중요도 수준
[in] inEventID
등록 취소하려는 외부 이벤트 블록의 이벤트에 대응하는 이벤트 ID입니다.

제한 해제 로거

void UnthrottleLogger(
  void
)

UnThretleLogger는 유효한 로깅 수준을 구성된 로깅 수준으로 복원합니다.

공개 정적 함수

로깅 관리 만들기

void CreateLoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement 객체를 만들고 제공된 리소스로 로깅 관리 하위 시스템을 초기화합니다.

LogStorageResources 배열을 사용하여 LoggingManagement를 초기화합니다. 배열은 각 유효 중요도 수준에 대한 리소스를 제공해야 하며, 배열 요소는 중요도의 숫자 값을 점점 높여야 하며, 중요도가 떨어지는 배열에 있는 첫 번째 요소는 가장 중요한 이벤트에 할당된 리소스에 해당하고, 마지막 요소는 가장 중요하지 않은 이벤트에 해당합니다.

세부정보
매개변수
[in] inMgr
WeaveExchangeManager: 이 로깅 하위 시스템과 함께 사용됨
[in] inNumBuffers
inLogStorageResources 배열의 요소 수
[in] inLogStorageResources
각 중요도 수준에 대한 LogStorageResources 배열입니다.

LoggingManagement 폐기

void DestroyLoggingManagement(
  void
)

종료 시 필요한 작업을 모두 수행합니다.

GetInstance

LoggingManagement & GetInstance(
  void
)