[seek-dev] changing ecogrid server side to use commons-logging.

Jing Tao tao at nceas.ucsb.edu
Wed Sep 7 14:00:25 PDT 2005


Hi, Kevin:

It seems good plan to use commons-loggin/log4j infrastructure. But I have 
a suggestion: rather than change every "EcogridUtils.debugMessage" to
"logger.debug", we can modify EcogridUtil.debugMessage directly. Currently 
EcogridUtil.debugMessage use System.err.println and we can change to use 
the commons-loggin/log4j.

How do you think this apporach?

Thanks,

Jing

Jing Tao
National Center for Ecological
Analysis and Synthesis (NCEAS)
735 State St. Suite 204
Santa Barbara, CA 93101

On Wed, 7 Sep 2005, Kevin Ruland wrote:

> Date: Wed, 07 Sep 2005 14:12:12 -0500
> From: Kevin Ruland <kruland at ku.edu>
> To: seek-dev at ecoinformatics.org
> Subject: [seek-dev] changing ecogrid server side to use commons-logging.
> 
>
> Jing,
>
> Globus grid services use commons-logging/log4j infrastructure for all
> its output.  I decided to make the Digir implementation follow these
> lines because it allows easier configuration of log messages.  Matt
> suggested it we should try to move all the ecogrid server code to using
> this logging mechanism.  Allow me the chance to highlight the changes
> needed for this.
>
> Where before in DigirProxyImpl, it would do this:
>
> import org.ecoinformatics.ecogrid.EcogridUtils;
>
> public class DigirProxyImpl implements
> EcoGridQueryInterfaceLevelOnePortType {
>
> public DigirProxyImpl()
> {
>  EcogridUtils.setDebug(true);
>  EcogridUtils.debugMessage( "DigirProxyImpl Constructor", 1 );
> }
> }
>
>
> It now looks like this:
>
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
>
> public class DigirProxyImpl implements
> EcoGridQueryInterfaceLevelOnePortType {
>    static Log logger  = LogFactory.getLog( DigirProxyImpl.class.getName());
>
>  public DigirProxyImpl()
>  {
>    if (Logger.isDebugEnabled()) {
>     logger.debug("DigirProxyImpl Constructor" );
>   }
>  }
> }
>
> In reality the test for isDebugEnabled() is not required, but it does
> provide performance improvement if the message arguments are expensive
> to construct.  In this example, it would read much better without it.
>
> In order to enable logging in the deployed server, you need to correct
> one problem that ogsa's ant deployTomcat introduces.  You need to mv
> webapps/ogsa/WEB-INF/ogsilogging.properties to
> webapps/ogsa/WEB-INF/classes/ogsilogging.properties.  I corrected the
> globus build-services.xml to copy it into the correct location to begin
> with.
>
> Now in order to enable debug level for your class you need to insert a
> line in the ogsilogging.properties:
>
> org.ecoinformatics.ecogrid.digir.impl.DigirProxyImpl=console,debug
>
> All the log messages sent to console end up in catalina.out.  There
> should be a way to configure the logging properties to redirect to a
> different file, but I haven't needed to so didn't look for the answer.
>
> Kevin
> _______________________________________________
> Seek-dev mailing list
> Seek-dev at ecoinformatics.org
> http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/seek-dev
>


More information about the Seek-dev mailing list