<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FServlets%2FLog</id>
		<title>Java/Servlets/Log - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FServlets%2FLog"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Log&amp;action=history"/>
		<updated>2026-04-21T20:36:31Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Servlets/Log&amp;diff=6297&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Log&amp;diff=6297&amp;oldid=prev"/>
				<updated>2010-06-01T06:11:06Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:11, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Servlets/Log&amp;diff=6296&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Servlets/Log&amp;diff=6296&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Another logger servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class LoggerServlet2 extends HttpServlet {&lt;br /&gt;
  private Logger log = null;&lt;br /&gt;
  public void init() {&lt;br /&gt;
    log = Logger.getLogger(LoggerServlet2.class);&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    //display a DEBUG level message&lt;br /&gt;
    log.debug(&amp;quot;Sending a DEBUG message from logger2&amp;quot;);&lt;br /&gt;
    //display an INFO level message&lt;br /&gt;
    log.info(&amp;quot;Sending an INFO message from logger2&amp;quot;);&lt;br /&gt;
    //better display something&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    java.io.PrintWriter out = response.getWriter();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Servlet logging&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;h2&amp;gt;Hello from LoggerServlet&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger name is: &amp;quot; + log.getName() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger parent is: &amp;quot; + log.getParent().getName()&lt;br /&gt;
        + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.close();&lt;br /&gt;
  } //end doGet&lt;br /&gt;
  public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    doGet(request, response);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Context log ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import javax.servlet.ServletContext;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class ContextLog extends HttpServlet {&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    String yourMessage = request.getParameter(&amp;quot;mine&amp;quot;);&lt;br /&gt;
    //Call the two ServletContext.log methods&lt;br /&gt;
    //the javax.servlet.GenericServlet.getServletContext method&lt;br /&gt;
    ServletContext context = getServletContext();&lt;br /&gt;
    if (yourMessage == null || yourMessage.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
      //log version with Throwable parameter&lt;br /&gt;
      context.log(&amp;quot;No message received:&amp;quot;, new IllegalStateException(&lt;br /&gt;
          &amp;quot;Missing parameter&amp;quot;));&lt;br /&gt;
    else&lt;br /&gt;
      context.log(&amp;quot;Here is the visitor&amp;quot;s message: &amp;quot; + yourMessage);&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    java.io.PrintWriter out = response.getWriter();&lt;br /&gt;
    //logging servlets probably want to display more HTML; this is &amp;quot;lazy&lt;br /&gt;
    // HTML&amp;quot;&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;ServletContext logging&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;h2&amp;gt;Messages sent&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  } //end doGet&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Context logger ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class ContextLogger implements ServletContextListener {&lt;br /&gt;
  private Logger log;&lt;br /&gt;
  public ContextLogger() {&lt;br /&gt;
  }&lt;br /&gt;
  public void contextDestroyed(ServletContextEvent sce) {&lt;br /&gt;
    String name = sce.getServletContext().getServletContextName();&lt;br /&gt;
    //log request of the INFO level&lt;br /&gt;
    log.info(&amp;quot;ServletContext shut down: &amp;quot; + (name == null ? &amp;quot;&amp;quot; : name));&lt;br /&gt;
  }&lt;br /&gt;
  public void contextInitialized(ServletContextEvent sce) {&lt;br /&gt;
    ServletContext context = sce.getServletContext();&lt;br /&gt;
    String realPath = context.getRealPath(&amp;quot;/&amp;quot;);&lt;br /&gt;
    String fileSep = System.getProperty(&amp;quot;file.separator&amp;quot;);&lt;br /&gt;
    if (realPath != null &amp;amp;&amp;amp; (!realPath.endsWith(fileSep)))&lt;br /&gt;
      realPath = realPath + fileSep;&lt;br /&gt;
    //Initialize logger here:&lt;br /&gt;
    PropertyConfigurator.configure(realPath + &amp;quot;WEB-INF/classes/&amp;quot;&lt;br /&gt;
        + context.getInitParameter(&amp;quot;logger-config&amp;quot;));&lt;br /&gt;
    log = Logger.getLogger(ContextLogger.class);&lt;br /&gt;
    String name = context.getServletContextName();&lt;br /&gt;
    //log request about servlet context being initialized&lt;br /&gt;
    log.info(&amp;quot;ServletContext ready: &amp;quot; + (name == null ? &amp;quot;&amp;quot; : name));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Log Filter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;
public class LogFilter implements Filter {&lt;br /&gt;
  private FilterConfig config;&lt;br /&gt;
  private Logger log;&lt;br /&gt;
  /** Creates new RequestFilter */&lt;br /&gt;
  public LogFilter() {&lt;br /&gt;
  }&lt;br /&gt;
  public void init(FilterConfig filterConfig) throws ServletException {&lt;br /&gt;
    this.config = filterConfig;&lt;br /&gt;
    //load the configuration for this application&amp;quot;s loggers using the&lt;br /&gt;
    // servletLog.properties file&lt;br /&gt;
    PropertyConfigurator.configure(config.getServletContext().getRealPath(&lt;br /&gt;
        &amp;quot;/&amp;quot;)&lt;br /&gt;
        + &amp;quot;WEB-INF/classes/servletLog.properties&amp;quot;);&lt;br /&gt;
    log = Logger.getLogger(LogFilter.class);&lt;br /&gt;
    log.info(&amp;quot;Logger instantiated in &amp;quot; + getClass().getName());&lt;br /&gt;
  }&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
      FilterChain chain) throws java.io.IOException, ServletException {&lt;br /&gt;
    HttpServletRequest req = null;&lt;br /&gt;
    String id = config.getInitParameter(&amp;quot;log-id&amp;quot;);&lt;br /&gt;
    if (id == null)&lt;br /&gt;
      id = &amp;quot;unknown&amp;quot;;&lt;br /&gt;
    if (log != null &amp;amp;&amp;amp; (request instanceof HttpServletRequest)) {&lt;br /&gt;
      req = (HttpServletRequest) request;&lt;br /&gt;
      log.info(&amp;quot;Log id:&amp;quot; + id + &amp;quot;: Request received from: &amp;quot;&lt;br /&gt;
          + req.getRemoteHost() + &amp;quot; for &amp;quot; + req.getRequestURL());&lt;br /&gt;
    }&lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
  }// doFilter&lt;br /&gt;
  public void destroy() {&lt;br /&gt;
    /*&lt;br /&gt;
     * called before the Filter instance is removed from service by the web&lt;br /&gt;
     * container&lt;br /&gt;
     */&lt;br /&gt;
    log = null;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logger new config ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class LoggerNewConfig extends HttpServlet {&lt;br /&gt;
  private Logger log = null;&lt;br /&gt;
  public void init() {&lt;br /&gt;
    log = Logger.getLogger(LoggerNewConfig.class);&lt;br /&gt;
    log.info(&amp;quot;LoggerNewConfig started.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    //display a DEBUG level message&lt;br /&gt;
    log.debug(&amp;quot;Sending a DEBUG message&amp;quot;);&lt;br /&gt;
    // display an INFO level message&lt;br /&gt;
    log.info(&amp;quot;Sending an INFO message&amp;quot;);&lt;br /&gt;
    //better display some HTML&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    java.io.PrintWriter out = response.getWriter();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Servlet logging&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println&lt;br /&gt;
       (&amp;quot;&amp;lt;h2&amp;gt;Hello from a Logger with its own configuration in the log4j.properties file&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger name is: &amp;quot; + log.getName() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger parent is: &amp;quot; + log.getParent().getName()&lt;br /&gt;
        + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.close();&lt;br /&gt;
  } //end doGet&lt;br /&gt;
  public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    doGet(request, response);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logger Servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class LoggerServlet extends HttpServlet {&lt;br /&gt;
  private Logger log = null;&lt;br /&gt;
  public void init() {&lt;br /&gt;
    String realPath = getServletContext().getRealPath(&amp;quot;/&amp;quot;);&lt;br /&gt;
    String fileSep = System.getProperty(&amp;quot;file.separator&amp;quot;);&lt;br /&gt;
    if (realPath != null &amp;amp;&amp;amp; (!realPath.endsWith(fileSep)))&lt;br /&gt;
      realPath = realPath + fileSep;&lt;br /&gt;
    System.out.println(realPath);&lt;br /&gt;
    //load the configuration for this application&amp;quot;s loggers using the&lt;br /&gt;
    // servletLog.properties file&lt;br /&gt;
    PropertyConfigurator.configure(realPath&lt;br /&gt;
        + &amp;quot;WEB-INF/classes/servletLog.properties&amp;quot;);&lt;br /&gt;
    //create the logger for this servlet class&lt;br /&gt;
    //it will use the configuration for the logger com.jexp.LoggerServlet&lt;br /&gt;
    //or inherit from the logger com.jexp if one exists, and so on&lt;br /&gt;
    log = Logger.getLogger(LoggerServlet.class);&lt;br /&gt;
    log.info(&amp;quot;LoggerServlet started.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    //display a DEBUG level message&lt;br /&gt;
    log.debug(&amp;quot;Sending a DEBUG message&amp;quot;);&lt;br /&gt;
    //display an INFO level message&lt;br /&gt;
    log.info(&amp;quot;Sending an INFO message&amp;quot;);&lt;br /&gt;
    //better display something&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    java.io.PrintWriter out = response.getWriter();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Servlet logging&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;h2&amp;gt;Hello from LoggerServlet&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger name is: &amp;quot; + log.getName() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger parent is: &amp;quot; + log.getParent().getName()&lt;br /&gt;
        + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
    out.close();&lt;br /&gt;
  } //end doGet&lt;br /&gt;
  public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    doGet(request, response);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LoggerSkel for Servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class LoggerSkel extends HttpServlet {&lt;br /&gt;
  private Logger log;&lt;br /&gt;
  public void init() {&lt;br /&gt;
    PropertyConfigurator.configure(getServletContext().getRealPath(&amp;quot;/&amp;quot;)&lt;br /&gt;
        + &amp;quot;WEB-INF/classes/servletLog.properties&amp;quot;);&lt;br /&gt;
    log = Logger.getLogger(LoggerSkel.class);&lt;br /&gt;
    log.debug(&amp;quot;Instance created of: &amp;quot; + getClass().getName());&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    //do logging here if necessary&lt;br /&gt;
  } //end doGet&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logger without configure file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import org.apache.log4j.BasicConfigurator;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class LoggerNconfig extends HttpServlet {&lt;br /&gt;
  private Logger log = null;&lt;br /&gt;
  public void init() {&lt;br /&gt;
    log = Logger.getRootLogger();&lt;br /&gt;
    BasicConfigurator.configure();&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    //display a DEBUG level message&lt;br /&gt;
    log.debug(&amp;quot;Sending a DEBUG message&amp;quot;);&lt;br /&gt;
    // display an INFO level message&lt;br /&gt;
    log.info(&amp;quot;Sending an INFO message&amp;quot;);&lt;br /&gt;
    //better display some HTML&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    java.io.PrintWriter out = response.getWriter();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Servlet logging&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;h2&amp;gt;Hello from a Logger with no Config file&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger name is: &amp;quot; + log.getName() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger parent is: &amp;quot; + log.getParent().getName()&lt;br /&gt;
        + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  } //end doGet&lt;br /&gt;
  public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    doGet(request, response);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logging Filter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public final class LoggingFilter implements Filter &lt;br /&gt;
{&lt;br /&gt;
  private FilterConfig filterConfig = null;&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
    long start = System.currentTimeMillis();&lt;br /&gt;
    String address =  request.getRemoteAddr();&lt;br /&gt;
    String file = ((HttpServletRequest) request).getRequestURI();&lt;br /&gt;
        &lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
    filterConfig.getServletContext().log(&lt;br /&gt;
        &amp;quot;User access! &amp;quot; +      &lt;br /&gt;
        &amp;quot; User IP: &amp;quot; + address +      &lt;br /&gt;
        &amp;quot; Resource: &amp;quot; + file + &lt;br /&gt;
        &amp;quot; Milliseconds used: &amp;quot; + (System.currentTimeMillis() - start) &lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() { }&lt;br /&gt;
  public void init(FilterConfig filterConfig) {&lt;br /&gt;
    this.filterConfig = filterConfig;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Log in ServletContext ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
// web.xml&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;web-app xmlns=&amp;quot;http://java.sun.ru/xml/ns/j2ee&amp;quot; &lt;br /&gt;
         xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; &lt;br /&gt;
         xsi:schemaLocation=&amp;quot;http://java.sun.ru/xml/ns/j2ee&lt;br /&gt;
         http://java.sun.ru/xml/ns/j2ee/web-app_2_4.xsd&amp;quot; version=&amp;quot;2.4&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;servlet&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;LoggingServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-class&amp;gt;LoggingServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet&amp;gt;&lt;br /&gt;
  &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;
    &amp;lt;servlet-name&amp;gt;LoggingServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;
    &amp;lt;url-pattern&amp;gt;/loggingServlet&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
  &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;
&amp;lt;/web-app&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import javax.servlet.ServletConfig;&lt;br /&gt;
import javax.servlet.ServletContext;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.ServletOutputStream;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
public class LoggingServlet extends HttpServlet {&lt;br /&gt;
  private ServletContext context;&lt;br /&gt;
  public void init(ServletConfig config) throws ServletException {&lt;br /&gt;
    super.init(config);&lt;br /&gt;
    context = getServletContext();&lt;br /&gt;
    context.log(&amp;quot;Init has been invoked&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest req, HttpServletResponse res)&lt;br /&gt;
      throws IOException {&lt;br /&gt;
    ServletOutputStream out = res.getOutputStream();&lt;br /&gt;
    context.log(&amp;quot;doGet has now been invoked&amp;quot;);&lt;br /&gt;
    res.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Logging Servlet&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;body&amp;gt;Visit the &amp;lt;tomcat-home&amp;gt;\\logs and open the xx file to see the log entries&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Servlet Logging ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
package net.firstpartners.nounit.utility;&lt;br /&gt;
/**&lt;br /&gt;
 * Title:        NoUnit - Identify Classes that are not being unit Tested&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright (C) 2001  Paul Browne , FirstPartners.net&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * This program is free software; you can redistribute it and/or &lt;br /&gt;
 * modify it under the terms of the GNU General Public License&lt;br /&gt;
 * as published by the Free Software Foundation; either version 2&lt;br /&gt;
 * of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This program is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 * GNU General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU General Public License&lt;br /&gt;
 * along with this program; if not, write to the Free Software&lt;br /&gt;
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * @author Paul Browne&lt;br /&gt;
 * @version 0.6&lt;br /&gt;
 */&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * stores log of system output and system errors&lt;br /&gt;
 * If Servlet , writes to Servlet Log File.&lt;br /&gt;
 * If non-Servlet , writes to Output Files Specified in parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
 * Class is mainly static , to allow ease of use (one one log file per system!!) ,&lt;br /&gt;
 * but has a non-static constructor (for use by servlets - so reference to servlet&lt;br /&gt;
 * log file can be set.&lt;br /&gt;
 */&lt;br /&gt;
public class Logging {&lt;br /&gt;
  //Class Level Variables&lt;br /&gt;
  static String logFileName;       // both package level to enable testing&lt;br /&gt;
  static String errorLogFileName;&lt;br /&gt;
  static FileWriter logWriter;&lt;br /&gt;
  static FileWriter errorWriter;&lt;br /&gt;
  static boolean doLogging=false;   //default no logging unless file says otherwise&lt;br /&gt;
  //For use in Servlet Context Logging&lt;br /&gt;
  static ServletContext innerContext;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Constructor for Logging from Servlet&lt;br /&gt;
   * @param inServletContext used to get access to the Servlet log files&lt;br /&gt;
   * @exception IOException if it can&amp;quot;t create log files&lt;br /&gt;
   */&lt;br /&gt;
   public Logging (ServletContext inServletContext) throws IOException {&lt;br /&gt;
    //Store incoming Context + Set Logging Flag&lt;br /&gt;
    this.innerContext= inServletContext;&lt;br /&gt;
    //Set logging flag&lt;br /&gt;
    doLogging=true;&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * do Setup&lt;br /&gt;
   * @exception IOException if it can&amp;quot;t create log files&lt;br /&gt;
   */&lt;br /&gt;
  private static void setup () {&lt;br /&gt;
    try {&lt;br /&gt;
      //Check if setup required - ie nothing has been setup before&lt;br /&gt;
      if (((logFileName==null)&amp;amp;&amp;amp;(errorLogFileName==null))||(innerContext==null))&lt;br /&gt;
      {&lt;br /&gt;
        //Set logging flag&lt;br /&gt;
        &lt;br /&gt;
          doLogging=true;&lt;br /&gt;
          //Get logging parameters&lt;br /&gt;
          logFileName= &amp;quot;LogFile.txt&amp;quot;;&lt;br /&gt;
          errorLogFileName = &amp;quot;ErrorLogFile.txt&amp;quot;;&lt;br /&gt;
          //Create the files&lt;br /&gt;
          logWriter = new FileWriter(logFileName,true); //append data&lt;br /&gt;
          errorWriter = new FileWriter(errorLogFileName,true); //append&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
    } catch (java.io.IOException ie) {&lt;br /&gt;
      //do nothing - exists to keep method signature simple&lt;br /&gt;
      //will show up as NullPointerException later&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Print log of system output&lt;br /&gt;
   * @param sysOut&lt;br /&gt;
   */&lt;br /&gt;
  public static void printOutput(Object sysOut){&lt;br /&gt;
    //setup (if required)&lt;br /&gt;
    setup();&lt;br /&gt;
    //skip out asap if logging is turned off&lt;br /&gt;
    if (!doLogging) {return; }&lt;br /&gt;
&lt;br /&gt;
    //Check for Servlet Logging&lt;br /&gt;
    if (innerContext!=null) {&lt;br /&gt;
      doServletLog(sysOut);&lt;br /&gt;
    } else {&lt;br /&gt;
      //do file logging&lt;br /&gt;
      try {&lt;br /&gt;
        if (sysOut instanceof Exception) {&lt;br /&gt;
          logWriter.write(((Exception)sysOut).toString());&lt;br /&gt;
          logWriter.flush();&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          logWriter.write(sysOut.toString());&lt;br /&gt;
          logWriter.flush();&lt;br /&gt;
        }&lt;br /&gt;
      } catch (java.io.IOException ioe) {&lt;br /&gt;
        //do nothing - let app continue&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Print log of system errors&lt;br /&gt;
   * This method catches java.io.IOExceptions internally , so as to give a&lt;br /&gt;
   * similar method signature to System.out.println. Also should we stop system&lt;br /&gt;
   * if logging (and only logging) fails?&lt;br /&gt;
   * @param sysErr&lt;br /&gt;
   */&lt;br /&gt;
  public static void printError(Object sysErr){&lt;br /&gt;
    //setup (if required)&lt;br /&gt;
    setup();&lt;br /&gt;
    //skip out asap if logging is turned off&lt;br /&gt;
    if (!doLogging) {return; }&lt;br /&gt;
    //Check for Servlet Logging&lt;br /&gt;
    if (innerContext!=null) {&lt;br /&gt;
      doServletLog(sysErr);&lt;br /&gt;
    } else {&lt;br /&gt;
      //do file logging&lt;br /&gt;
      try {&lt;br /&gt;
        if (sysErr instanceof Exception) {&lt;br /&gt;
          logWriter.write(((Exception)sysErr).toString());&lt;br /&gt;
          logWriter.flush();&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
          logWriter.write(sysErr.toString());&lt;br /&gt;
          logWriter.flush();&lt;br /&gt;
        }&lt;br /&gt;
      } catch (java.io.IOException ioe) {&lt;br /&gt;
        //do nothing - let app continue&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * private method for handling logging to Servlets&lt;br /&gt;
   * @param inObject to Log&lt;br /&gt;
   */&lt;br /&gt;
  private static void doServletLog (Object inObject) {&lt;br /&gt;
    if(inObject instanceof Throwable) {&lt;br /&gt;
      //Log as Exception&lt;br /&gt;
      innerContext.log(&amp;quot;&amp;quot;,(Throwable)inObject);&lt;br /&gt;
    } else {&lt;br /&gt;
      //Log as Normal String&lt;br /&gt;
      innerContext.log(inObject.toString());&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Prints debug message to system log file.&lt;br /&gt;
   * Catches java.io.IOExceptions internally, so as to give a&lt;br /&gt;
   * similar method signature to System.out.println.&lt;br /&gt;
   *&lt;br /&gt;
   * @param object Object containing information to display&lt;br /&gt;
   */&lt;br /&gt;
  public static void debug(Object object){&lt;br /&gt;
    setup();&lt;br /&gt;
    if (doLogging) {&lt;br /&gt;
      if (innerContext==null) {&lt;br /&gt;
        // log debug message to file&lt;br /&gt;
        try {&lt;br /&gt;
          try {&lt;br /&gt;
            logWriter.write(((Exception)object).toString());&lt;br /&gt;
          }&lt;br /&gt;
          catch (ClassCastException e) {&lt;br /&gt;
            logWriter.write(object.toString());&lt;br /&gt;
          }&lt;br /&gt;
          logWriter.flush();&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
          //do nothing - let app continue&lt;br /&gt;
        }&lt;br /&gt;
      } else {&lt;br /&gt;
        doServletLog(object);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Servlet: Root logger ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//Log4j from Apache is required&lt;br /&gt;
import org.apache.log4j.Logger;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
public class LoggerWconfig extends HttpServlet {&lt;br /&gt;
  private Logger log = null;&lt;br /&gt;
  public void init() {&lt;br /&gt;
    log = Logger.getRootLogger();&lt;br /&gt;
    log.info(&amp;quot;LoggerWconfig started.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    //display a DEBUG level message&lt;br /&gt;
    log.debug(&amp;quot;Sending a DEBUG message&amp;quot;);&lt;br /&gt;
    // display an INFO level message&lt;br /&gt;
    log.info(&amp;quot;Sending an INFO message&amp;quot;);&lt;br /&gt;
    //better display some HTML&lt;br /&gt;
    response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
    java.io.PrintWriter out = response.getWriter();&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Servlet logging&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;h2&amp;gt;Hello from a Logger with a log4j.properties file&amp;lt;/h2&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;Your logger name is: &amp;quot; + log.getName() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
      throws ServletException, java.io.IOException {&lt;br /&gt;
    doGet(request, response);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Servlets Logging Filter Demo ==&lt;/div&gt;</summary>
			</entry>

	</feed>