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.
setLogVerbosity
to PNLogVerbosity.BODY
. For more info on configuration please check the API reference page.
PNConfiguration pnConfiguration = new PNConfiguration();
pnConfiguration.setLogVerbosity(PNLogVerbosity.BODY);
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 (e.g. slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
slf4j-log4j jar
file (e.g. 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
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 simple slf4j
you need to add the following references to the project:
slf4j-api jar
file (e.g. slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
.slf4j-simple jar
file (e.g. 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 (e.g. 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 (e.g. 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 (e.g. slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
.slf4j-jcl jar
file (e.g. 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 (e.g. slf4j-api-1.7.5.jar or the latest version) which is the SLF4J API
and nothing else.
Option 2:
- Add the reference of
slf4j-api jar
file (e.g. slf4j-api-1.7.5.jar or the latest version) which is theSLF4J API
. - Then, add a reference to
slf4j-nop jar
file (e.g. slf4j-nop-1.7.5.jar or the latest version).
More info on SLF4J can be found here.