DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=28961>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=28961 loggers shift files but don't roll (not deleting oldest files by prescribes file count) ------- Additional Comments From [EMAIL PROTECTED] 2004-05-28 23:38 ------- package company.util; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import org.apache.catalina.Container; import org.apache.catalina.Logger; /** * in logging properties: * * log4j.category.tomcatlog=INFO, tomcat * * log4j.appender.tomcat=org.apache.log4j.RollingFileAppender * log4j.appender.tomcat.MaxFileSize=1000KB * log4j.appender.tomcat.MaxBackupIndex=9 * log4j.appender.tomcat.Append=true * log4j.appender.tomcat.File=tomcat.log * log4j.appender.tomcat.layout=org.apache.log4j.PatternLayout * log4j.appender.tomcat.layout.ConversionPattern=%d %-5p [%t] %c - %m%n * * * In server.xml: * * <Logger verbosity="4" className="company.util.Log4JLogger" log4JLoggerName="tomcatlog"/> * * Drop log4j jar in tomcat's common/lib * * Drop this Log4JLogger class under proper tree under server/classes * */ public class Log4JLogger implements Logger { static final String info = Log4JLogger.class.getName()+"/1.0"; PropertyChangeSupport support = new PropertyChangeSupport(this); Container container = null; int debug = 0; int verbosity = ERROR; String loggerName; org.apache.log4j.Logger log4jLogger = null; public Log4JLogger() { log4jLogger = org.apache.log4j.Logger.getLogger(Log4JLogger.class); } public void setLog4JLoggerName(String loggerName) { if(loggerName!=null) { org.apache.log4j.Logger l = org.apache.log4j.Logger.getLogger(loggerName); if(l!=null) { log4jLogger = l; this.loggerName = loggerName; } } else { this.loggerName = null; log4jLogger = org.apache.log4j.Logger.getLogger(Log4JLogger.class); } } public String getLog4JLoggerName() { return loggerName; } //---------- public void log(Exception exception, String msg) { log4jLogger.error(msg, exception); } public void log(String message, int verbosity) { if (this.verbosity >= verbosity) { switch(verbosity) { case FATAL: log4jLogger.fatal(message); break; case ERROR: log4jLogger.error(message); break; case WARNING: log4jLogger.warn(message); break; case INFORMATION: log4jLogger.info(message); break; case DEBUG: log4jLogger.debug(message); break; } } } public void log(String message, Throwable throwable, int verbosity) { if (this.verbosity >= verbosity) { switch(verbosity) { case FATAL: log4jLogger.fatal(message, throwable); break; case ERROR: log4jLogger.error(message, throwable); break; case WARNING: log4jLogger.warn(message, throwable); break; case INFORMATION: log4jLogger.info(message, throwable); break; case DEBUG: log4jLogger.debug(message, throwable); break; } } } public void log(String message, Throwable throwable) { log4jLogger.error(message, throwable); } public void log(String message) { log4jLogger.info(message); } //---------- public Container getContainer() { return (container); } public void setContainer(Container container) { Container oldContainer = this.container; this.container = container; support.firePropertyChange("container", oldContainer, this.container); } public String getInfo() { return (info); } public int getVerbosity() { return (this.verbosity); } public void setVerbosity(int verbosity) { this.verbosity = verbosity; } public void addPropertyChangeListener(PropertyChangeListener listener) { support.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { support.removePropertyChangeListener(listener); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]