Receiving Logs with LogReceiver

To receive logs on your app with LogReceiver, register your custom LogReceiver objects with Mobile SDK. Each LogReceiver is provided to Mobile SDK by the LogReceiverFactory interface. Mobile SDK provides the component name upon instantiation, as well as the log entry’s level, tag, message, and error.

For example, see these code samples. You can add the code where your app initializes Mobile SDK.

Android 

1setLogReceiverFactory(object : SalesforceLogReceiverFactory {
2    override fun create(componentName: String): SalesforceLogReceiver =
3    logReceiversByComponentName[componentName] ?: object : SalesforceLogReceiver {
4        override fun receive(
5            level: Level,
6            tag: String,
7            message: String
8        ) {
9            val resolvedMessage = "$componentName - $message"
10            when (level) {
11                OFF -> {}
12                ERROR -> Log.e("AppMsdkLogReceiver", resolvedMessage)
13                WARN -> Log.w("AppMsdkLogReceiver", resolvedMessage)
14                INFO -> Log.i("AppMsdkLogReceiver", resolvedMessage)
15                DEBUG -> Log.d("AppMsdkLogReceiver", resolvedMessage)
16                VERBOSE -> Log.v("AppMsdkLogReceiver", resolvedMessage)
17            }
18        }
19
20        override fun receive(
21            level: Level,
22            tag: String,
23            message: String,
24            throwable: Throwable?
25        ) {
26            val resolvedMessage = "$componentName - $message"
27            when (level) {
28                OFF -> {}
29                ERROR -> Log.e("RestExplorerApp", resolvedMessage, throwable)
30                WARN -> Log.w("RestExplorerApp", resolvedMessage, throwable)
31                INFO -> Log.i("RestExplorerApp", resolvedMessage, throwable)
32                DEBUG -> Log.d("RestExplorerApp", resolvedMessage, throwable)
33                VERBOSE -> Log.v("RestExplorerApp", resolvedMessage, throwable)
34            }
35        }
36    }
37})

iOS 

1class MyLogReceiver: SalesforceLogReceiver {
2    func receive(level: SalesforceLogger.Level,
3    cls: AnyClass, component: String, message: String) {
4        print("AppMsdkLogReceiver: '\(cls)', [\(level)],
5        '\(component)', '\(message)'")
6    }
7}
8
9class MyLogReceiverFactory : SalesforceLogReceiverFactory {
10    func create(componentName: String) ->
11    any SalesforceSDKCommon.SalesforceLogReceiver {
12        return MyLogReceiver()
13    }
14}
15
16SalesforceLogger.setLogReceiverFactory(MyLogReceiverFactory())

We've Moved

Welcome to the new home of the Mobile SDK Developer Guide! For now, the Japanese guide can be found in PDF form.