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