RobotLoggerPathConfigurator.java from Kneobase at Krugle
Show RobotLoggerPathConfigurator.java syntax highlighted
package com.kneobase.web.util;
import java.util.Enumeration;
import javax.servlet.ServletContext;
import org.apache.log4j.Logger;
import org.springframework.web.context.ServletContextAware;
import com.kneobase.logging.KneobaseLogAppender;
import com.kneobase.logging.KneobaseLogger;
/**
* Helper class to assist RobotLogger in path configuration.
*
* @author patricio.keilty@colaborativa.net
*
*/
public class RobotLoggerPathConfigurator implements ServletContextAware {
private ServletContext _servletContext;
private static Logger _logger = Logger.getLogger( RobotLoggerPathConfigurator.class );
/**
* @see org.springframework.web.context.ServletContextAware#setServletContext(javax.servlet.ServletContext)
*/
public void setServletContext( ServletContext arg0 ){
_servletContext = arg0;
configureAppenderPaths();
}
/**
* Configure RobotLogger appenders paths to be below servlet context path.
* Note: drivers(robots)logs must be properly configured and should not depend
* on external log4j adecuate configuration.
*/
private void configureAppenderPaths() {
Logger logger = Logger.getLogger( KneobaseLogger.SOURCE_LOGGER_PROTO );
Enumeration enumAppenders = logger.getAllAppenders();
if(enumAppenders == null){
System.out.print("LOG FAIL: Not appenders configured.");
return;
}
while( enumAppenders.hasMoreElements() ){
Object next = enumAppenders.nextElement();
if( next instanceof KneobaseLogAppender ){
KneobaseLogAppender app = (KneobaseLogAppender)next;
String finalPath = _servletContext.getRealPath( app.getFolder() );
if( null != finalPath ){
app.setFolder( finalPath );
if( _logger.isInfoEnabled() ){
_logger.info( "RobotLogger appender has been configured with path: " + finalPath );
}
} else
_logger.error( "RobotLogger appender real path could not been determined: " + app.getFolder() );
}
}
}
}
See more files for this project here