Как да се справя с изключения при регистриране, когато използвам Log4j2 Async регистриране?

В моето приложение използвам Log4j2 в асинхронен режим (асинхронен регистратор, използващ Disruptor), може ли някой да ми каже как да се справя с изключение, което се случва в процеса на регистриране. Регистрирането е много критично за моето приложение, не искам да пропусна нито един отчет за журнал. Ако нещо се обърка с регистрирането, това трябва да бъде предупредено незабавно.

Според Apache страницата Log4j предлага да се използва ExceptionHandler, но аз не можах да намеря помощна тема как да използвам това.

Обработка на грешки. Ако възникне проблем по време на процеса на регистриране и бъде хвърлено изключение, не е лесно за асинхронен регистратор или допълнение да сигнализира за този проблем на приложението. Това може частично да се облекчи чрез конфигуриране на ExceptionHandler, но това все още може да не покрива всички случаи. Поради тази причина, ако регистрирането е част от вашата бизнес логика, например ако използвате Log4j като рамка за регистриране на одит, бихме препоръчали да регистрирате синхронно тези съобщения за одит. (Имайте предвид, че все още можете да ги комбинирате и да използвате асинхронно регистриране за регистриране на грешки/проследяване в допълнение към синхронното регистриране за одитната пътека.)

Очаквам предложения.


person k0der    schedule 01.04.2015    source източник


Отговори (1)


Предлагам първо да опитате да имплементирате прост клас, който имплементира интерфейса ExceptionHandler и да потвърдите, че той се извиква, когато възникне проблем. След като това бъде потвърдено, можете да преминете към внедряване на вашия персонализиран резервен механизъм.

Второ, може да е трудно да се разработи стабилен резервен вариант: вашият резервен вариант може да не е в състояние да записва на диска, ако причината за неуспеха на log4j е, че дискът е пълен или повреден. По същия начин може да не успеете да осъществите мрежова връзка... Предлагам вашия резервен вариант да включва множество опции, за да увеличите вероятността една от тези опции да успее.

Хардуерът е евтин, така че помислете за добавяне на отделна мрежова карта или отделен твърд диск за вашия резервен механизъм. Не забравяйте да изпратите известия, ако се използва резервният механизъм, за да можете да адресирате първоначалния проблем.

В зависимост от това колко критично за мисията е това, може да искате да проучите продукти на доставчици, които дават висока наличност - това обикновено обхваща повече от просто регистриране, не сте сигурни какви са вашите нужди тук.

person Remko Popma    schedule 03.04.2015