1. Create the default "log4j.properties" file within the root src folder of your web project.
# **Set root logger level to DEBUG and its only appender to A.
log4j.rootLogger=DEBUG, A
# ***** A is set to be a ConsoleAppender.
log4j.appender.A=org.apache.log4j.ConsoleAppender
# ***** A uses PatternLayout.
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Eg:
2. Add the log4j JAR file to the project's web-inf/lib directory for runtime and as a project library JAR file for compile time. In my case I used the JAR file as follows
> log4j-1.2.15.jar
3. Here is the servlet code which will then use log4j at runtime.
package pas.au.log4j;
import java.io.IOException;
import java.io.PrintWriter;
import org.apache.log4j.Category;
import org.apache.log4j.PropertyConfigurator;
import java.util.Properties;
import java.io.FileInputStream;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger;
public class Log4JServletDemo
extends HttpServlet
{
Logger log = Logger.getLogger(this.getClass().getSimpleName());
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public void init(ServletConfig config)
throws ServletException
{
super.init(config);
log.info("init() method of servlet Log4JServletDemo");
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Log4JServletDemo</title></head>");
out.println("<body>");
out.println("<h2>Log4j demo</h2>");
log.info("init() doGet method of servlet Log4JServletDemo");
out.println("</body></html>");
out.close();
}
}
4. When run within the "Integrated Weblogic Server" verify runtime output as follows within JDeveloper's log window.
Target URL -- http://127.0.0.1:7101/Log4JTest-ServletDemo-context-root/log4jservletdemo
0 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO Log4JServletDemo - init() method of servlet Log4JServletDemo
63 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO Log4JServletDemo - init() doGet method of servlet Log4JServletDemo
When your ready to create a WAR file for deployment to an External Weblogic 10.3 server then the log4j.properties file should be added to the web-inf/classes folder automatically with this setup.
No comments:
Post a Comment