'Micronaut: Proper logging of "uncaught" Exceptions to not appear on System.err
I've a question regarding capture of "uncaught" exceptions, which appears with stack trace on System.err, circumventing logging configuration: All the other log messages appear properly formatted on System.out (JSON-formatted in my case). But this doesn't happen with Exceptions and stack traces "logged" to System.err!
I've recognized this to happen under at least two circumstances:
- Asynchronous execution of tasks (HTTP requests in my case) via
ExecutorService(as mentioned in "Scheduled Tasks" chapter). I've added@Retryableannotation to the method; but after all retries fail, "final" Exception thrown by last unsuccessful retry appears onSystem.errwith its stack trace (the other ones thrown by earlier failed retries do not appear, seems they are caught by retry "mechanism" under the hood). - With Exceptions thrown by failed Health indicators (they are implemented by subclassing
AbstractHealthIndicator).
I've tried implementing my own TaskExceptionHandler, replacing the default one (also mentioned in "Scheduled Tasks" chapter); and/or by adding System.setErr(System.out) in main method before building/setup of Micronaut Application Context. But nothing seems to help as my test cases attest.
Have I missed a chapter in Micronaut's documentation? Thanks for any hints.
Regards
Christian
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
