KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > web > util > Log4jConfigServlet


1 /*
2  * Copyright 2002-2005 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.web.util;
18
19 import java.io.IOException JavaDoc;
20
21 import javax.servlet.http.HttpServlet JavaDoc;
22 import javax.servlet.http.HttpServletRequest JavaDoc;
23 import javax.servlet.http.HttpServletResponse JavaDoc;
24
25 /**
26  * Bootstrap servlet for custom Log4J initialization in a web environment.
27  * Delegates to Log4jWebConfigurer (see its javadoc for configuration details).
28  *
29  * <b>WARNING: Assumes an expanded WAR file</b>, both for loading the configuration
30  * file and for writing the log files. If you want to keep your WAR unexpanded or
31  * don't need application-specific log files within the WAR directory, don't use
32  * Log4J setup within the application (thus, don't use Log4jConfigListener or
33  * Log4jConfigServlet). Instead, use a global, VM-wide Log4J setup (for example,
34  * in JBoss) or JDK 1.4's <code>java.util.logging</code> (which is global too).
35  *
36  * <p>Note: This servlet should have a lower <code>load-on-startup</code> value
37  * in <code>web.xml</code> than ContextLoaderServlet, when using custom Log4J
38  * initialization.
39  *
40  * <p><i>Note that this class has been deprecated for containers implementing
41  * Servlet API 2.4 or higher, in favor of Log4jConfigListener.</i><br>
42  * According to Servlet 2.4, listeners must be initialized before load-on-startup
43  * servlets. Many Servlet 2.3 containers already enforce this behavior
44  * (see ContextLoaderServlet javadocs for details). If you use such a container,
45  * this servlet can be replaced with Log4jConfigListener. Else or if working
46  * with a Servlet 2.2 container, stick with this servlet.
47  *
48  * @author Juergen Hoeller
49  * @author Darren Davison
50  * @since 12.08.2003
51  * @see Log4jWebConfigurer
52  * @see Log4jConfigListener
53  * @see org.springframework.web.context.ContextLoaderServlet
54  */

55 public class Log4jConfigServlet extends HttpServlet JavaDoc {
56
57     public void init() {
58         Log4jWebConfigurer.initLogging(getServletContext());
59     }
60
61     public void destroy() {
62         Log4jWebConfigurer.shutdownLogging(getServletContext());
63     }
64
65
66     /**
67      * This should never even be called since no mapping to this servlet should
68      * ever be created in web.xml. That's why a correctly invoked Servlet 2.3
69      * listener is much more appropriate for initialization work ;-)
70      */

71     public void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws IOException JavaDoc {
72         getServletContext().log(
73                 "Attempt to call service method on Log4jConfigServlet as [" +
74                 request.getRequestURI() + "] was ignored");
75         response.sendError(HttpServletResponse.SC_BAD_REQUEST);
76     }
77
78
79     public String JavaDoc getServletInfo() {
80         return "Log4jConfigServlet for Servlet API 2.2/2.3 " +
81                 "(deprecated in favor of Log4jConfigListener for Servlet API 2.4)";
82     }
83
84 }
85
Popular Tags