Log4J - funkcjonalność podobna do SiftingAppender
Pracuję w projekcie, który wykorzystujeLog4J. Jednym z wymagań jest utworzenie osobnego pliku dziennika dla każdego wątku; to było dziwne zagadnienie, trochę posortowane przez utworzenie nowego FileAppendera w locie i dołączenie go do instancji Loggera.
Logger logger = Logger.getLogger(<thread dependent string>);
FileAppender appender = new FileAppender();
appender.setFile(fileName);
appender.setLayout(new PatternLayout(lp.getPattern()));
appender.setName(<thread dependent string>);
appender.setThreshold(Level.DEBUG);
appender.activateOptions();
logger.addAppender(appender);
Wszystko poszło dobrze, dopóki nie zdaliśmy sobie sprawy, że używamy innej biblioteki -Spring Framework v3.0.0 (które używająLogowanie do Commons) - nie gra w piłkę z powyższą techniką - dane rejestrowania wiosny są „widziane” tylko przez Appendery zainicjowane z pliku log4.configuration, ale nie przez środowisko wykonawcze utworzone Appenders. Wróćmy więc do pierwszego.
Po pewnym dochodzeniu dowiedziałem się, że nowe i ulepszoneLogBack ma aplikatora -SiftingAppender - co robi dokładnie to, czego potrzebujemy, tj. Rejestrowanie poziomu wątków w niezależnych plikach.
W tej chwili przejście na LogBack nie jest opcją, więc utknąwszy z Log4J, jak mogę osiągnąć funkcjonalność podobną do SiftingAppender i sprawić, by Spring był szczęśliwy?
Uwaga: Wiosna służy tylko doJdbcTemplate funkcjonalność, bez IOC; w celu „zaczepienia” Spring’s Commons Logowania do Log4J Dodałem ten wiersz w pliku log4j.properties:
log4j.logger.org.springframework = DEBUG
zgodnie z instrukcjątutaj.