[ 
https://issues.apache.org/jira/browse/CXF-9049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17899417#comment-17899417
 ] 

Kai Zander commented on CXF-9049:
---------------------------------

[~reta] Thanks for the offer, but I don't think I would be able to properly 
implement this myself without a considerable time investment. The code snippet 
I provided in the description should be considered pseudo-code.

> JAXRSUtils: Logging Improvements
> --------------------------------
>
>                 Key: CXF-9049
>                 URL: https://issues.apache.org/jira/browse/CXF-9049
>             Project: CXF
>          Issue Type: Wish
>          Components: JAX-RS
>    Affects Versions: 4.0.5
>            Reporter: Kai Zander
>            Priority: Minor
>
> Currently, during a write error _of any kind_, {{JAXRSUtils}} logs ERRORs 
> like this:
> {code:none}
> JAXRSUtils - Problem with writing the data, class com.acme.MyResponseType, 
> ContentType: application/json
> {code}
> We have the following issues with this:
> # Because there's no stack trace, this error doesn't help us in identifying 
> what went wrong.
> # The log level is always ERROR, even for errors that aren't actionable, like 
> when the client aborts the request before the server could send the response.
> This issue is related to CXF-7389, with the distinction of that issue being 
> about log levels for API responses with HTTP error status codes. But here, 
> I'd like to request a similar improvement but for response handling errors. 
> This could allow us to maybe configure a property 
> {{IOException.class.getName() + ".log.level"}} to reduce the log level for 
> exceptions of our choosing.
> The logic that checks for these properties should then have to consider the 
> type hierarchy to properly deal with subclasses of {{IOException}}, something 
> like this snippet:
> {code:java}
> Level determineLogLevel(Exception ex, Message m) {
>   Class<?> exType = ex.getClass();
>   do {
>     String key = exType.getName() + ".log.level";
>     if (m.containsKey(key)) {
>       return Level.parseLevel(m.get(key).toString());
>     }
>     exType = exType.getSuperClass();
>   } while (exType != Object.class);
>   return someDefaultLevelPossiblyError;
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to