Writing HmsLogs in Local Storage

Save Logs from SDK in Local Storage

Logs from hmsSDK can be saved as a file in local storage by setting the settings from HmsLogSettings in Builder of hmsSDK instance. In this , whenever there is a log printed from hmsSDK it will be saved in a seperate file.

💡 Each new meeting will have a seperate session log with file name as session-log-${room_id} file, where "${room_id}" is a placeholder

Implementation Details

HmsLogSettings must be passed as a parameter in hmsSdk builder object during instantiation.

Params:

maxDirSizeInBytes - max dir size in bytes to be maintained for /logs default - set to 10mb.

💡 Note : if the directory size exceeds the maxDirSizeInBytes provided by client, then it will delete the oldest files next time user starts a meeting to make room for new ones.

A background service is also started once a day to make sure that size of directory never exceeds the desired size.

isLogStorageEnabled - set to true if /logs are to be saved else false default - false.
level - set log level for logs to observe default - HMSLogger.Debug

private val hmsLogSettings : HMSLogSettings = HMSLogSettings(LogAlarmManager.DEFAULT_DIR_SIZE,true) val hmsSDK = HMSSDK .Builder(application) .setLogSettings(hmsLogSettings) .build()

💡 whenever there is a crash in hmsSDK , it will be logged in the file named as crash-log-${room_id} where ${room_id} is a placeholder.

Fetching the Log Directory From SDK

It could look something like this:

import live.hms.video.utils.LogUtils
val dir : File = LogUtils.getDirPath(context = context)