I would like to add stacktrace to error logging, so anywhere we have
try {
doSomething();
} catch (Exception ex) {
something();
logger.severe("oops");
something();
}
I would like to have this:
try {
doSomething();
} catch (Exception ex) {
something();
logger.log(Level.SEVERE,"oops",ex);
something();
}
The exception variable can be anything ex, e etc.
I created a regex, but it is quite slow and does not work as I expect.
Regex:
((?s:.)*catch\s*\(\s*Exception\s*(.+)\s*\)\s*\{(?s:.)*logger\.)severe\(((?s:.)*?)\);((?s:.)*)
Replace:
$1log(Level.SEVERE,$3,$2); $4
It replaces
try {
doSomething();
} catch (Exception ex) {
something();
logger.severe("oops");
something();
}
{
logger.severe("oops2");
}
to
try {
doSomething();
} catch (Exception ex) {
something();
logger.severe("oops");
something();
}
{
logger.log(Level.SEVERE,"oops2",ex);
}