Error logging

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.

By default, when you initialize Kotlin Chat SDK, logging is disabled (LogLevel.OFF).

Available logging options include:

ValueDescription
ERRORUsed for logging error messages.
WARNUsed for logging warning messages.
INFOUsedfor logging informational messages.
DEBUGUsed for logging debug messages.
VERBOSEThe most detailed level of logging. It includes everything at the DEBUG level and more fine-grained information.

To start log events, set LogLevel to one of the above values by passing it in ChatConfiguration.

val chatConfig = ChatConfiguration(logLevel = LogLevel.INFO)
val pnConfiguration = PNConfiguration.builder(userId = UserId("myUserId"), subscribeKey = "mySubscribeKey").build()

Chat.init(chatConfig, pnConfiguration).async { result ->
result.onSuccess { chat: Chat ->
println("Chat successfully initialized having logLevel: ${chatConfig.logLevel}")
}.onFailure { exception: PubNubException ->
println("Exception initialising chat: ${exception.message}")
}
}

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.

Last updated on