Váš košík je aktuálně prázdný!
Logovani ve Springu
Jak udělat podrobné logování ve Springu tak, aby se nemusel procházet kód a ručně vkládat něco jako log.debug(....);
? Spring framework má pro tyto úcěly vynikající podporu, jejíž použití je naprosto jednoduché.
Tomu řešení se říká AOP a Spring má vestavěno několik zajímavých aspektů.
Začněme příkladem použití:
Výše uvedená konfigurace zajistí to, že všechny beany, které jsou ve stejném aplikačním kontextu a jejichž názvy končí řetězci „BusinessService“ a nebo „Bean“ (parametr beanNames
u BeanNameAutoProxyCreator
) budou automaticky obaleny dynamickou proxy, která bude aplikovat CustomizableTraceInterceptor. “’Tento interceptor zajistí“‘, že:
* bude zalogováno volání jakékoliv public metody beany včetně vstupních argumentů
* bude zalogována výstupní hodnota včetně času, které vykonání metody
* v případě ukončení volání vyjímkou, bude tato vyjímka také zalogována
* logování bude na TRACE levelu a pokud je nastaveno logování pouze na vyšší úrovni, nebude volání metod v podstatě nijak výrazně zpomaleno
* zalogované záznamy budou aplikovat původní název třídy jako název použitého loggeru (tzn. ignorují se názvy proxy class i interceptoru)
Zajímavých interceptorů připravených rovnou k použití poskytuje Spring více:
ConcurrencyThrottleInterceptor
– omezuje paralelní volání metod dané instancePerformanceMonitorInterceptor
– umožňuje jednoduché logování výkonnostních otisků (tzn. jak dlouho trval běh konkrétního volání metody instance)DebugInterceptor
– jednoduché (fixní) logování metod dané instanceCustomizableTraceInterceptor
– umožňuje customizovatelné transparentní logování volání metod dané instance
Categories:
Leave a Reply