Log Configuration¶
Log Initialization Configuration¶
| 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)))