You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by co...@apache.org on 2002/02/04 11:11:59 UTC
cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/frontends PhoenixServlet.java
colus 02/02/04 02:11:59
Modified: src/java/org/apache/avalon/phoenix/frontends
PhoenixServlet.java
Log:
Create the Logger in the Frontend rather than in the Embeddor.
Revision Changes Path
1.6 +45 -9 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/frontends/PhoenixServlet.java
Index: PhoenixServlet.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/frontends/PhoenixServlet.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PhoenixServlet.java 11 Dec 2001 10:13:34 -0000 1.5
+++ PhoenixServlet.java 4 Feb 2002 10:11:59 -0000 1.6
@@ -7,17 +7,25 @@
*/
package org.apache.avalon.phoenix.frontends;
+import java.io.File;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
-import org.apache.avalon.excalibur.i18n.ResourceManager;
-import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.avalon.framework.ExceptionUtil;
+import org.apache.avalon.framework.logger.AvalonFormatter;
+import org.apache.avalon.framework.logger.LogKitLogger;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.excalibur.i18n.ResourceManager;
+import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.phoenix.components.embeddor.SingleAppEmbeddor;
import org.apache.avalon.phoenix.interfaces.Embeddor;
+import org.apache.log.Hierarchy;
+import org.apache.log.LogTarget;
+import org.apache.log.Priority;
+import org.apache.log.output.io.FileTarget;
/**
* Servlet frontends for SingleAppEmbeddor.
@@ -31,6 +39,11 @@
private static final Resources REZ =
ResourceManager.getPackageResources( PhoenixServlet.class );
+ private static final String DEFAULT_LOG_FILE = "/logs/phoenix.log";
+
+ private final static String DEFAULT_FORMAT =
+ "%{time} [%7.7{priority}] (%{category}): %{message}\\n%{throwable}";
+
private Parameters m_parameters;
private SingleAppEmbeddor m_embeddor;
@@ -38,7 +51,7 @@
final String defaultValue )
{
final String value = getInitParameter( name );
- if( null == value )
+ if ( null == value )
{
return defaultValue;
}
@@ -55,11 +68,11 @@
//TODO: configuring with more parameters.
final ServletContext context = getServletContext();
- final String logDestination =
+ final String logDestination =
context.getRealPath( getInitParameter( "log-destination", "/WEB-INF/logs/phoenix.log" ) );
final String logPriority = getInitParameter( "log-priority", "INFO" );
final String appName = getInitParameter( "application-name", "default" );
- final String appLoc =
+ final String appLoc =
context.getRealPath( getInitParameter( "application-location", "/WEB-INF/" + appName ) );
m_parameters = new Parameters();
@@ -71,7 +84,8 @@
try
{
m_embeddor = new SingleAppEmbeddor();
- if( m_embeddor instanceof Parameterizable )
+ m_embeddor.enableLogging( createLogger( m_parameters ) );
+ if ( m_embeddor instanceof Parameterizable )
{
( (Parameterizable)m_embeddor ).parameterize( m_parameters );
}
@@ -80,7 +94,7 @@
final Thread thread = new Thread( this, "Phoenix" );
thread.start();
}
- catch( final Throwable throwable )
+ catch ( final Throwable throwable )
{
log( REZ.getString( "main.exception.header" ) );
log( "---------------------------------------------------------" );
@@ -99,7 +113,7 @@
{
m_embeddor.execute();
}
- catch( final Throwable throwable )
+ catch ( final Throwable throwable )
{
log( REZ.getString( "main.exception.header" ) );
log( "---------------------------------------------------------" );
@@ -122,7 +136,7 @@
m_embeddor = null;
m_parameters = null;
}
- catch( final Throwable throwable )
+ catch ( final Throwable throwable )
{
log( REZ.getString( "main.exception.header" ) );
log( "---------------------------------------------------------" );
@@ -130,5 +144,27 @@
log( "---------------------------------------------------------" );
log( REZ.getString( "main.exception.footer" ) );
}
+ }
+
+ private Logger createLogger( final Parameters parameters )
+ throws Exception
+ {
+ final String phoenixHome = parameters.getParameter( "phoenix.home" );
+ final String logDestination =
+ parameters.getParameter( "log-destination", phoenixHome + DEFAULT_LOG_FILE );
+ final String logPriority =
+ parameters.getParameter( "log-priority", "INFO" );
+ final AvalonFormatter formatter = new AvalonFormatter( DEFAULT_FORMAT );
+ final File file = new File( logDestination );
+ final FileTarget logTarget = new FileTarget( file, false, formatter );
+
+ //Create an anonymous hierarchy so no other
+ //components can get access to logging hierarchy
+ final Hierarchy hierarchy = new Hierarchy();
+ final org.apache.log.Logger logger = hierarchy.getLoggerFor( "Phoenix" );
+ logger.setLogTargets( new LogTarget[]{logTarget} );
+ logger.setPriority( Priority.getPriorityForName( logPriority ) );
+ logger.info( "Logger started" );
+ return new LogKitLogger( logger );
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>