Skip to content

Log Configuration

Log Initialization Configuration

FTSdk.initLogWithConfig(new FTLoggerConfig()
    //.setEnableConsoleLog(true, "log prefix")
    .setEnableLinkRumData(true)
    .setEnableCustomLog(true)
    //.setLogLevelFilters(new Status[]{Status.CRITICAL, Status.ERROR})
    .setSamplingRate(0.8f));
FTSdk.initLogWithConfig(
    FTLoggerConfig()
        //.setEnableConsoleLog(true, "log prefix")
        .setEnableLinkRumData(true)
        .setEnableCustomLog(true)
        //.setLogLevelFilters(arrayOf(Status.CRITICAL, Status.ERROR))
        .setSamplingRate(0.8f)
)
Method Name Type Required Description
setSamplingRate Float No Set the sampling rate, range [0,1]. 0 means no collection, 1 means full collection. Default is 1.
setEnableConsoleLog Boolean No Whether to report console logs. This configuration depends on ft-plugin, default is false. The log level mapping is: Log.v -> ok, Log.i -> info, Log.d -> debug, Log.e -> error, Log.w -> warning. prefix is the console prefix filter parameter, default is no filter. Note: Android console logs can be voluminous. To avoid impacting app performance and reduce unnecessary resource waste, it is recommended to use prefix to filter valuable logs. ft-plugin version 1.3.5 and above supports capturing logs printed by Log.println.
setEnableLinkRumData Boolean No Whether to link with RUM data, default is false.
setEnableCustomLog Boolean No Whether to upload custom logs, default is false.
setLogLevelFilters Array No Set log level filters, default is no filter.
addGlobalContext Dictionary No Add global attributes for logs. For addition rules, please refer to here.
setLogCacheLimitCount Int No Local cache maximum log entry count limit [1000,). Larger logs mean greater disk cache pressure. Default is 5000.
setLogCacheDiscardStrategy LogCacheDiscard No Set the log discard rule when the cache limit is reached. Default is LogCacheDiscard.DISCARD. DISCARD discards appended data, DISCARD_OLDEST discards oldest data.

Logger Log Printing

Use FTLogger for custom log output. Requires enabling FTLoggerConfig.setEnableCustomLog(true).

Currently, log content is limited to 30 KB. Characters exceeding this limit will be truncated.

Usage

/**
 * Store a single log data locally synchronously.
 *
 * @param content  Log content
 * @param status   Log level, enum Status
 * @param property Additional attributes (optional)
 */
public void logBackground(String content, Status status, HashMap<String, Object> property)

/**
 * Store a single log data locally synchronously.
 *
 * @param content  Log content
 * @param status   Log level, String
 * @param property Additional attributes (optional)
 */
public void logBackground(String content, String status, HashMap<String, Object> property)

/**
 * Store multiple log data locally synchronously.
 *
 * @param logDataList List of {@link LogData}
 */
public void logBackground(List<LogData> logDataList)
/**
 * Store a single log data locally synchronously.
 *
 * @param content  Log content
 * @param status   Log level
 * @param property Log attributes (optional)
 */
fun logBackground(content: String, status: Status, property: HashMap<String, Any>)

/**
 * Store a single log data locally synchronously.
 *
 * @param content  Log content
 * @param status   Log level
 * @param property Log attributes (optional)
 */
fun logBackground(content: String, status: String, property: HashMap<String, Any>)

/**
 * Store multiple log data locally synchronously.
 *
 * @param logDataList List of log data
 */
fun logBackground(logDataList: List<LogData>)

Log Levels

Method Name Description
Status.DEBUG Debug
Status.INFO Info
Status.WARNING Warning
Status.ERROR Error
Status.CRITICAL Critical
Status.OK Ok

Code Examples

// Upload a single log
FTLogger.getInstance().logBackground("test", Status.INFO);

// Pass parameters via HashMap
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key", "ft_value");
FTLogger.getInstance().logBackground("test", Status.INFO, map);

// Batch upload logs
List<LogData> logList = new ArrayList<>();
logList.add(new LogData("test", Status.INFO));
FTLogger.getInstance().logBackground(logList);
// Upload a single log
FTLogger.getInstance().logBackground("test", Status.INFO)

// Pass parameters via HashMap
val map = HashMap<String, Any>()
map["ft_key"] = "ft_value"
FTLogger.getInstance().logBackground("test", Status.INFO, map)

// Batch upload logs
FTLogger.getInstance().logBackground(mutableListOf(LogData("test", Status.INFO)))