Redirecting log4j output to Servlet output
// Usually when debugging servlet app, I like to see the log4j output, this is a quick hack on how to redirect / add log4j output
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Logger logger = Logger.getRootLogger();
String appenderName = "servletOutputAppender";
Appender servletAppender = logger.getAppender(appenderName);
OutputStream out = resp.getOutputStream();
PrintWriter writer = new PrintWriter(out, true);
if ( servletAppender == null ) {
servletAppender = new WriterAppender(new SimpleLayout(), out);
servletAppender.setName(appenderName);
logger.addAppender(servletAppender);
}
try {
//do your own stuff here
} finally {
logger.removeAppender(appenderName);
writer.flush();
}
}
0 Comments