Troubleshooting PubNub Kotlin SDK

How to enable logging

Pubnub implements swappable logging using SLF4J, which allows you to switch different logging frameworks easily. All the logging calls using SLF4J API will be delegated to the underlying logging framework.

setLogVerbosity to PNLogVerbosity.BODY. For more info on configuration, check the API reference page.

val pnConfiguration = PNConfiguration()
pnConfiguration.logVerbosity = PNLogVerbosity.BODY

Implement logging on Android

To implement logging on Android you need to add the following dependency to the project.

The logs will appear in Logcat.

Implement logging using log4j

To implement logging using log4j you need to add the following references to the project. Using log4j you can log to console or a file or both.

Along with these references you need to add the log4j.properties file in the CLASSPATH

Configure log4j.properties file to write the logs to a log file

# Root logger option
log4j.rootLogger=ALL, FILE

# Direct log messages to a log file
log4j.appender.FILE =org.apache.log4j.FileAppender
log4j.appender.FILE.File=/Users/rajat/Projects/eclipsews/log4jloging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Configure log4j.properties file to write the logs to console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

More info can be found here.

Implement logging using slf4j

To implement logging using slf4j you need to add the following references to the project.

Along with these references you need to add the simplelogger.properties file in the CLASSPATH.

Sample simplelogger.properties

org.slf4j.simpleLogger.logFile=System.out
org.slf4j.simpleLogger.defaultLogLevel=debug
org.slf4j.simpleLogger.showDateTime=true
org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss.SSS

Implement logging using logback-classic

To implement logging using logback-classic you need to add the following references to the project.

Implement logging using java.util.logging

To implement logging using java.util.logging you need to add the following references to the project.

JVM runtime provides the underlying logging framework.

Implement logging using commons-logging

To implement logging using commons-logging you need to add the following references to the project.

The underlying logging framework is chosen dynamically by commons-logging.

No logging

To implement no logging you have two options:

  1. Add the SLF4J API dependency.
  2. Then, add a reference to SLF4J-nop dependency.
Last updated on