你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

MemoryLogger Class

  • java.lang.Object
    • com.microsoft.cognitiveservices.speech.diagnostics.logging.MemoryLogger

public final class MemoryLogger

A static class 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. MemoryLogger 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 MemoryLogger 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.42.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.

Method Summary

Modifier and Type Method and Description
static java.util.List<java.lang.String> dump()

Returns the content of the whole memory buffer as a list of Strings.

static void dump(OutputStream outStream)

Writes the content of the whole memory buffer to an object that implements java.io.OutputStream.

static void dump(String filePath)

Writes the content of the whole memory buffer to the specified file.

static void setFilters()

Clears filters for memory logging.

static void setFilters(String[] filters)

Sets filters for memory logging.

static void setLevel(Level level)

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

static void start()

Starts logging into the internal memory buffer.

static void stop()

Stops logging into the internal memory buffer.

Methods inherited from java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

Method Details

dump

public static List dump()

Returns the content of the whole memory buffer as a list of Strings. For example, you can access it as a String list by calling MemoryLogger.dump(). It does not block other SDK threads from continuing to log into the buffer.

Returns:

A list of Strings of the contents of the memory buffer copied into it.

dump

public static void dump(OutputStream outStream)

Writes the content of the whole memory buffer to an object that implements java.io.OutputStream. For example, System.out (for console output). It does not block other SDK threads from continuing to log into the buffer.

Parameters:

outStream - OutputStream object to write to.

Throws:

java.io.IOException - If an I/O error occurs.

dump

public static void dump(String filePath)

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.

Parameters:

filePath - Path to a log file on local disk.

setFilters

public static void setFilters()

Clears filters for memory logging.

setFilters

public static void setFilters(String[] filters)

Sets filters for memory logging. Once filters are set, memory logger will only be updated with log strings containing at least one of the strings specified by the filters. The match is case sensitive.

Parameters:

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

setLevel

public static void setLevel(Level level)

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

Parameters:

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

start

public static void start()

Starts logging into the internal memory buffer.

stop

public static void stop()

Stops logging into the internal memory buffer.

Applies to