我有一個春天的應用程序提供Web請求。每個請求方法看起來像這樣懶惰的人登錄
@RequestMapping(value = someUri, method = RequestMethod.POST)
Response someUriProcessor (SomeRequestModelMethod request) throws Exception {
try (JsonLogger logger = new JsonLogger(request, loggingTest1Uri)){
// get actual result
Response result = getSomeResultMethod(request);
// feed result to special logging object
logger.setResult (result);
// return result to client
return result;
}
}
JsonLogger類產生緊密方法JSON對象,並且經由其被上傳到日誌分析工具(Splunk的)標準SLF4J日誌框架記錄它,它記錄請求,響應,響應時間等上。
在執行大量工作的getSomeResultMethod執行期間使用帶有生產中的logback綁定的標準slf4j生成大量有用的日誌。 我希望這些日誌被包含在JsonLogger中,而不用觸及所有的基礎類(其中有很多),比如使用方法JsonLogger.appendToResultLog(String txt)。我的第一個想法是創建自己的包裝slf4j綁定,每次調用logger.info時釋放堆棧跟蹤,logger.error等方法使用反射到rest控制器方法,並在其中追加日誌字符串JsonLogger。
我有強烈的感覺,我正在發明一輛自行車。是否有任何或多或少的標準方法來達到要求的結果?
使用某種形式的方面? –