Troubleshooting PubNub Java 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.
logVerbosity
to PNLogVerbosity.BODY
. For more info on configuration please check the API reference page.
PNConfiguration.Builder configBuilder = PNConfiguration.builder(new UserId("yourUserId"), "yourSubscribeKey");
// publishKey from Admin Portal (only required if publishing)
configBuilder.publishKey("PublishKey");
configBuilder.logVerbosity(PNLogVerbosity.BODY);
PubNub pubNub = PubNub.create(configBuilder.build());
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.
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
slf4j-log4j jar
file (for example, slf4j-log4j-1.7.5.jar or the latest version) which acts as a bridge betweenslf4j
andlog4j
log4j jar
file ( log4j-1.2.17.jar or the latest version), which provides the underlying logging framework
Along with these references you need to add the log4j.properties
file in the CLASSPATH
.
# 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 simple slf4j
you need to add the following references to the project:
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
.slf4j-simple jar
file (for example, slf4j-simple-1.7.5.jar or the latest version) which provides the underlying logging framework.- Along with these references you need to add the
simplelogger.properties
file in theCLASSPATH
.
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:
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
.- logback-classic and logback-core jar files which provide the underlying logging framework.
Implement logging using java.util.logging
To implement logging using java.util.logging
you need to add the following references to the project:
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
.slf4j-jdk14 jar
file which acts as a bridge betweenslf4j
andjava
.
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:
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
.slf4j-jcl jar
file (for example, slf4j-jcl-1.7.15.jar or the latest version) which acts as a bridge betweenslf4j
and common-loggingcommon-logging.jar
file which acts as an abstraction layer.
The underlying logging framework is chosen dynamically by commons-logging
.
No logging
To implement no logging you have two options:
-
Option 1: Add the reference of
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
and nothing else. -
Option 2:
- Add the reference of
slf4j-api jar
file (for example, slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
. - Then, add a reference to
slf4j-nop jar
file (for example, slf4j-nop-1.7.5.jar or the latest version).