logging from exceptions code example

Example 1: response logging

Response Logging
If you want to print the response body regardless of the
status code you can do:

get("/x").then().log().body() ..
This will print the response body regardless if an error occurred.
If you're only interested in printing the response body if an error
occur then you can use:

get("/x").then().log().ifError(). .. 
You can also log all details in the response
including status line, headers and cookies:

get("/x").then().log().all(). .. 
as well as only status line, headers or cookies:

get("/x").then().log().statusLine(). .. // Only log the status line
get("/x").then().log().headers(). .. // Only log the response headers
get("/x").then().log().cookies(). .. // Only log the response cookies
You can also configure to log the response
only if the status code matches some value:

get("/x").then().log().ifStatusCodeIsEqualTo(302). .. // 
Only log if the status code is equal to 302

get("/x").then().log().ifStatusCodeMatches(matcher). .. //
Only log if the status code matches the supplied Hamcrest matcher

Example 2: logging request

Logging
In many cases it can be useful to print the
response and/or request details in order to 
help you create the correct expectations and 
send the correct requests. To do help you do thi
s you can use one of the predefined filters 
supplied with REST Assured or you can use one of the shortcuts.

Request Logging

given().log().all(). .. //
Log all request specification details
including parameters, headers and body
given().log().params(). .. // Log only the parameters of the request
given().log().body(). .. // Log only the request body
given().log().headers(). .. // Log only the request headers
given().log().cookies(). .. // Log only the request cookies
given().log().method(). .. // Log only the request method
given().log().path(). .. // Log only the request path