Remote logging API

更新时间:
复制 MD 格式

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');