tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shapira, Yoav" <>
Subject RE: [next] What's next ?
Date Thu, 02 Oct 2003 13:56:11 GMT

On the subject of AccessLogValve: I hadn't thought of the things Tim
suggested, but I have a different suggestion, part of a more general

1. Convert AccessLogValve to be a servlet specification 2.3 filter, i.e.
something portable.  We can define it in $CATALINA_HOME/conf/web.xml,
commented out by default perhaps, and users can move the definition
around as they need just like they do with the servlets defined

Furthermore, people can then extend/customize AccessLogFilter much more
easily, without needing to touch any tomcat classes.  And finally, this
will allow the full power of filter-mapping to be applied to access
logging. (I imagine the default in conf/web.xml would be the /*
url-pattern mapping, but I know I and other users have different use

If you think this is useful, I'd like to start working on it myself ;)
If you think it's not useful/bad/stupid, please let me know ;)

2. As an extension of the above idea, I would propose converting more of
the tomcat non-standard features into portable implementations.  This
includes the other filters, e.g. RemoteAddressFilter, RemoteHostFilter,
RequestDumperValve, and others you think are appropriate.

Then I have other ideas, of varying degrees of radicality and I'm sure
stupidity ;)  I'm proposing them for discussion, as I think they're all

1. Logging: use commons-logging throughout.  Eliminate tomcat logger
implementation classes (FileLogger, SystemErrLogger, SystemOutLogger).
Eliminate catalina.out file, instead having swallowOutput=true always
without option to change.  Default logging configuration should still
rotate nightly.

2. Eliminate the shared and common classloader repositories.  Unless
these are required by the spec?  Force webapps to be self-contained by
putting all their classes in WEB-INF/lib or WEB-INF/classes of their
webapp.  Have the WEB-INF/clases -> WEB-INF/lib -> endorsed -> system
classloader hierarchy, much simpler than current.

3. Provide a complete working configuration example for a cluster of
tomcat servers with a front-end tomcat as well, i.e. a pure tomcat-only
solution.  We already have the jvmRoute mechanism, but I think it needs
more examples/documentation so that people start using it.

4. Have no default objects created at runtime.  That means no default
session manager if one is not configured, no default context if one is
not configured, etc.  Ship tomcat with an example server.xml containing
all the default settings, and nothing more.

Of course, I'm willing to help on all of the above if we decide to do
any of them.  

That should be enough to get some talk going ;)

Yoav Shapira
Millennium ChemInformatics

>-----Original Message-----
>From: Tim Funk []
>Sent: Thursday, October 02, 2003 6:55 AM
>To: Tomcat Developers List
>Subject: Re: [next] What's next ?
>The AccessLog Valves might be nice to simplify so a "Logging" element
is a
>nested inside of the Valve declaration. This way the access log valve
>just do 3 things:
>- determine if it should log (conditional logging)
>- format a string to be logged
>- Pass it along to a "logging" element which can then store the log
>This way the Accesslog valve code with respect to File rotation,
>... can be greatly simplified.
>for example: (some names are wrong but just an example)
><Valve className="org.apache.catalina.valves.AccessLogValve"
>        pattern="common" resolveHosts="false">
>    <Logger className="org.apache.catalina.logger.SimpleLogger"
>            directory="logs"  prefix="localhost_access_log."
><Valve className="org.apache.catalina.valves.AccessLogValve"
>        pattern="common" resolveHosts="false">
>    <Logger className="org.apache.catalina.logger.PipedLogger"
>            exec="" />
><Valve className="org.apache.catalina.valves.AccessLogValve"
>        pattern="common" resolveHosts="false">
>    <Logger className="org.apache.catalina.logger.FileDateFormatLogger"
>            directory="logs"   dateStamp="mm-DD-yyyy"
>            prefix="localhost_access_log." suffix=".txt" />
>To unsubscribe, e-mail:
>For additional commands, e-mail:

This e-mail, including any attachments, is a confidential business communication, and may
contain information that is confidential, proprietary and/or privileged.  This e-mail is intended
only for the individual(s) to whom it is addressed, and may not be saved, copied, printed,
disclosed or used by anyone else.  If you are not the(an) intended recipient, please immediately
delete this e-mail from your computer system and notify the sender.  Thank you.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message