Share via


Class SPXMemoryLogger

Declaration

@class SPXMemoryLogger : NSObject;

Description

Class with static methods to control SDK logging into an in-memory buffer. Turning on logging while running your Speech SDK scenario provides detailed information from the SDK's core native components. If you report an issue to Microsoft, you may be asked to provide logs to help Microsoft diagnose the issue. Your application should not take dependency on particular log strings, as they may change from one SDK release to another without notice. SPXMemoryLogger is designed for the case where you want to get access to logs that were taken in the short duration before some unexpected event happens. For example, if you are running a Speech Recognizer, you may want to dump the SPXMemoryLogger after getting an event indicating recognition was canceled due to some error. The size of the memory buffer is fixed at 2MB and cannot be changed. This is a "ring" buffer, that is, new log strings written replace the oldest ones in the buffer. Added in version 1.43.0

Memory logging is a process wide construct. That means that if (for example) you have multiple speech recognizer objects running in parallel, there will be one memory buffer containing interleaved logs from all recognizers. You cannot get a separate logs for each recognizer.

Class Methods

start

Starts logging into the internal memory buffer.

+ (void)start

stop

Stops logging into the internal memory buffer.

+ (void)stop

setFilters:error:

Sets or clears the filters that apply to file logging.

+ (void)setFilters:(NSArray<NSString *> * _Nullable)filters
    error:(NSError * _Nullable * _Nullable)outError

Parameters

  • filters - Filters to use, or nil or an empty list to remove previously set filters.
  • outError - The error information.

setFilters:

Sets or clears the filters that apply to file logging.

+ (void)setFilters:(NSArray<NSString *> * _Nullable)filters

Parameters

  • filters - Filters to use, or nil or an empty list to remove previously set filters.

dumpToFile:

Writes the content of the whole memory buffer to the specified file. It does not block other SDK threads from continuing to log into the buffer.

+ (void)dumpToFile:(NSString * _Nonnull)path

Parameters

  • path - Path to a log file on local disk.

dumpToFile:error:

Writes the content of the whole memory buffer to the specified file. It does not block other SDK threads from continuing to log into the buffer.

+ (void)dumpToFile:(NSString * _Nonnull)path error:(NSError * _Nullable * _Nullable)outError

Parameters

  • path - Path to a log file on local disk.
  • outError - The error information.

dumpToOutputStream:

Writes the content of the whole memory buffer to the specified output stream. It does not block other SDK threads from continuing to log into the buffer.

+ (void)dumpToOutputStream:(NSOutputStream * _Nonnull)outputStream

Parameters

  • outputStream - The output stream to write to.

dumpToOutputStream:error:

Writes the content of the whole memory buffer to the specified output stream. It does not block other SDK threads from continuing to log into the buffer.

+ (void)dumpToOutputStream:(NSOutputStream * _Nonnull)outputStream
    error:(NSError * _Nullable * _Nullable)outError

Parameters

  • outputStream - The output stream to write to.
  • outError - The error information.

dumpToNSArray

Returns the content of the whole memory buffer as an array of strings. It does not block other SDK threads from continuing to log into the buffer.

+ (NSArray<NSString *> * _Nullable)dumpToNSArray

dumpToNSArray:

Returns the content of the whole memory buffer as an array of strings. It does not block other SDK threads from continuing to log into the buffer.

+ (NSArray<NSString *> * _Nullable)dumpToNSArray:(NSError * _Nullable * _Nullable)outError

Parameters

  • outError - The error information.

setLevel:

Sets the level of the messages to be captured by the logger.

+ (void)setLevel:(SPXLogLevel)level

Parameters

  • level - Maximum level of detail to be captured by the logger.