This document explains how to use the remote logging API from the Application Real-Time Monitoring Service Flutter SDK to record logs and adjust log levels.
Step 1: Create a logger instance
Create a logger instance for a specific module to record logs.
Interface definition
class RemoteLog {
factory RemoteLog.create(String moduleName);
}Parameters
Parameter | Type | Required | Description |
moduleName | String | Yes | The module name. |
Code sample
final logger = RemoteLog.create('checkout');Step 2: Record logs
Use the RemoteLog instance methods to record logs at different log levels.
Interface definition
class RemoteLog {
Future<void> debug(String message, {Object? error, StackTrace? stackTrace});
Future<void> info(String message, {Object? error, StackTrace? stackTrace});
Future<void> warn(String message, {Object? error, StackTrace? stackTrace});
Future<void> error(String message, {Object? error, StackTrace? stackTrace});
}Parameters
Parameter | Type | Required | Description |
message | String | Yes | The log message. |
error | Object | No | The error object. |
stackTrace | StackTrace | No | The stack trace. |
Code sample
await logger.debug('checkout page opened');
await logger.info('order created');
await logger.warn('retry payment request');
try {
throw StateError('payment failed');
} catch (error, stackTrace) {
await logger.error(
'submit order failed',
error: error,
stackTrace: stackTrace,
);
}Step 3: Adjust the log level
Use the RemoteLog class to adjust the log level. The default log level is debug.
Interface definition
enum RemoteLogLevel { off, error, warn, info, debug }
class RemoteLog {
static Future<RemoteLogLevel> updateLogLevel(RemoteLogLevel level);
}RemoteLogLevel enum
Parameter | Description |
off | Disables logging. |
error | The error level. |
warn | The warning level. |
info | The info level. |
debug | The debug level. |
Code sample
await RemoteLog.updateLogLevel(RemoteLogLevel.debug);Step 4: Manually upload logs
Use the RemoteLog class to manually upload all logs recorded for the current day.
Interface definition
class RemoteLog {
static Future<void> uploadLog(String bizComment);
}Parameters
Parameter | Type | Required | Description |
bizComment | String | Yes | A comment that describes the upload. |
Code sample
await RemoteLog.uploadLog('order_submit_failed');