다음을 통해 공유


class Diagnostics::Logging::MemoryLogger

메모리 내 버퍼에 대한 SDK 로깅을 제어하는 정적 메서드를 사용하는 클래스입니다. Speech SDK 시나리오를 실행하는 동안 로깅을 켜면 SDK의 핵심 네이티브 구성 요소에서 자세한 정보를 제공합니다. Microsoft에 문제를 보고하는 경우 Microsoft에서 문제를 진단하는 데 도움이 되는 로그를 제공하라는 메시지가 표시될 수 있습니다. 애플리케이션은 예고 없이 한 SDK 릴리스에서 다른 SDK 릴리스로 변경될 수 있으므로 특정 로그 문자열에 종속되지 않아야 합니다. MemoryLogger는 예기치 않은 이벤트가 발생하기 전에 짧은 기간 동안 수행된 로그에 액세스하려는 경우를 위해 설계되었습니다. 예를 들어 Speech Recognizer를 실행하는 경우 일부 오류로 인해 인식이 취소되었음을 나타내는 이벤트를 받은 후 MemoryLogger를 덤프할 수 있습니다. 메모리 버퍼의 크기는 2MB로 고정되며 변경할 수 없습니다. "링" 버퍼입니다. 즉, 기록된 새 로그 문자열이 버퍼에서 가장 오래된 로그 문자열을 대체합니다. 버전 1.20.0에 추가되었습니다.

메모리 로깅은 프로세스 전체 구문입니다. 즉, (예를 들어) 병렬로 실행되는 여러 음성 인식기 개체가 있는 경우 모든 인식기에서 인터리브된 로그를 포함하는 하나의 메모리 버퍼가 있습니다. 각 인식기마다 별도의 로그를 가져올 수 없습니다.

멤버

시작

구문: public inline static void Start ( );

내부 메모리 버퍼에 로그인을 시작합니다.

중지

구문: public inline static void Stop ( );

내부 메모리 버퍼에 대한 로그인을 중지합니다.

SetFilters

구문: public inline static void SetFilters ( std::initializer_list< std::string > filters );

메모리 로깅에 대한 필터를 설정하거나 지웁니다. 필터가 설정되면 메모리 로거는 필터에 지정된 문자열 중 하나 이상을 포함하는 로그 문자열로만 업데이트됩니다. 일치 항목은 대/소문자를 구분합니다.

매개 변수

  • filters 선택 사항입니다. 사용할 필터 또는 이전에 설정한 필터를 제거하기 위한 빈 목록입니다.

덤프

구문: public inline static void Dump ( const SPXSTRING & filePath );

전체 메모리 버퍼의 내용을 지정된 파일에 씁니다. 다른 SDK 스레드가 버퍼에 계속 로그인하는 것을 차단하지는 않습니다.

매개 변수

  • filePath 로컬 디스크의 로그 파일 경로입니다.

이렇게 하면 메모리 버퍼가 다시 설정(지우기)되지 않습니다.

덤프

구문: public inline static void Dump ( std::ostream & outStream );

std::ostream을 구현하는 개체에 전체 메모리 버퍼의 콘텐츠를 씁니다. 예를 들어 std::cout(콘솔 출력의 경우)입니다. 다른 SDK 스레드가 버퍼에 계속 로그인하는 것을 차단하지는 않습니다.

매개 변수

  • outStream 쓸 std::ostream 개체입니다.

이렇게 하면 메모리 버퍼가 다시 설정(지우기)되지 않습니다.

덤프

구문: public inline static std::vector< std::string > Dump ( );

전체 메모리 버퍼의 내용을 문자열의 벡터로 반환합니다. 다른 SDK 스레드가 버퍼에 계속 로그인하는 것을 차단하지는 않습니다.

반환

메모리 버퍼의 내용이 복사된 벡터입니다.

이렇게 하면 메모리 버퍼가 다시 설정(지우기)되지 않습니다.

SetLevel

구문: public inline static void SetLevel ( Level level );

로거가 캡처할 메시지의 수준을 설정합니다.

매개 변수

  • level 로거가 캡처할 최대 세부 수준입니다.