Używam log4j 1.2.15 w aplikacji Spring 3.1.1.RELEASE wdrożonej na JBoss AS 7.1.1.Final. Próbuję routować dane wyjściowe zapisane w log4j do mojego strumienia wyjściowego odpowiedzi. Mam wyjście napisane jak toJak przekierować wyjście log4j do mojego strumienia wyjściowego HttpServletResponse?
private static final Logger LOG = Logger.getLogger(TrainingSessionServiceImpl.class);
…
LOG.info("Creating/updating training session associated with order #:" + order.getId());
i próbuję trasie do mojego strumienia wyjściowego jak tak ...
@RequestMapping(value = "/refreshPd", method = RequestMethod.GET)
public void refreshPD(final HttpServletResponse response) throws IOException
{
...
final WriterAppender appender = new WriterAppender(new PatternLayout("%d{ISO8601} %p - %m%n"),response.getWriter());
appender.setName("CONSOLE_APPENDER");
appender.setThreshold(org.apache.log4j.Level.DEBUG);
Logger.getRootLogger().addAppender(appender);
worker.work();
Logger.getRootLogger().removeAppender("CONSOLE_APPENDER");
ale niestety, nic nie staje się wyjście do przeglądarce, chociaż wiem (poprzez debugowanie), że wywołania rejestrowania są wywoływane. Czy ktoś wie, jak mogę dostosować moją konfigurację, aby działała? Poniżej znajduje się mój plik log4j.properties wdrożony w katalogu WEB-INF/classes mojego wAR.
log4j.rootLogger=DEBUG, CA, FA
#Console Appender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=/usr/java/jboss/server/default/log/log4j.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Set the logger level of File Appender to WARN
log4j.appender.FA.Threshold = DEBUG
Dzięki, - Dave
Czy 'worker.work()' działa w tym samym lub innym wątku? Problem sugeruje, że działa on w innym wątku. – BalusC
Tak, działa w tym samym wątku. – Dave
Działa dobrze dla mnie na Tomcat. Po drobiazgowej analizie wygląda to jak specyficzny problem JBoss AS: http://stackoverflow.com/questions/6071809/adding-log4j-appenders- programowo, a następnie https://issues.jboss.org/browse/JBAS-9318 – BalusC