users@jersey.java.net

[Jersey] Jersey client 2.25 logging not working for request/response traffic

From: Manpreet Singh <manpreet.bhamba_at_oracle.com>
Date: Sat, 25 Feb 2017 08:10:41 -0800 (PST)

Hi All,

 

Need some assistance with logging.

I'm using jersey client v2.25.1 for a REST automation framework and here is how I am registering the Logger and initializing the Client:

 

//Initialize FileHandler

Path currPath = Paths.get(System.getProperty("user.dir"));

Path logFilePath = Paths.get(currPath.toString(), "logs", testCaseName+".log");

logHandleObj = new FileHandler(logFilePath.toString(), 0, 1, true);

 

//Initialize Logger

Logger loggerObj = Logger.getLogger(testCaseName);

loggerObj.setUseParentHandlers(false);

loggerObj.addHandler(logHandleObj);

 

//Initialize ClientConfig

ClientConfig clientConfig = new ClientConfig();

//Set configuration features

clientConfig.register(new JacksonFeature());

clientConfig.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true);

clientInstance = ClientBuilder.newClient(clientConfig);

//Register LoggingFeature

clientInstance.register(new LoggingFeature(loggerObj, Level.ALL,

        LoggingFeature.Verbosity.PAYLOAD_ANY, LoggingFeature.DEFAULT_MAX_ENTITY_SIZE));

 

As per HYPERLINK "https://jersey.java.net/documentation/latest/logging_chapter.html#d0e15694"documentation, this is supposed to be logging complete request/response traffic like so:

1 May 09, 2016 2:55:33 PM org.glassfish.jersey.logging.LoggingInterceptor log
2 INFO: 1 * Server has received a request on thread grizzly-http-server-0
3 1 > GET http://localhost:9998/helloworld
....

However, I am getting:

<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
    <date>2017-02-25T15:30:06</date>
    <millis>1488016806253</millis>
    <sequence>0</sequence>
    <logger>org.glassfish.jersey.client.JerseyInvocation</logger>
    <level>WARNING</level>
    <class>org.glassfish.jersey.client.JerseyInvocation</class>
    <method>validateHttpMethodAndEntity</method>
    <thread>1</thread>
    <message>Entity must not be null for http method PUT.</message>
</record>

So two problems here:

Not getting the HTTP traffic
Format is XML for some reason instead of plain text

Will really appreciate any assistance on this.

 

- Manpreet