Thanks for your support Brian :-)

Regarding the performances, I'm sure that a native
SyslogAccessLogValve will have much better performances than relying
on a logging framework:
* there will be less layers to go through
* we can eliminate any String or byte[] creation which to lower the
pressure on the garbage collector
* we can leverage the "org.apache.catalina.Valve#backgroundProcess()"
to efficiently refresh network resources and DNS resolutions

I would be happy to contribute such native syslog implementation in
Tomcat core, in Tomcat extras or as a separated open source library.
The only help I need is the split of the AccessLogValve to reuse the
formatting logic.

Cyrille


On Thu, Dec 12, 2013 at 11:42 AM, Brian Burch <br...@pingtoo.com> wrote:
>
> On 12/12/13 08:56, Cyrille Le Clerc wrote:
>>
>> Hello Christopher,
>>
>> Delegating to log4j/logback/java.util.logging could be an option but it
>> would still greatly benefit of a refactoring to split the existing
>> AccessLogValve into an AbstractAccessLogValve with the formatting logic and
>> an AccessLogValve that would keep the logic to write in the file.
>
>
> I raised the issue of the AccessLogValve(s) not using the tomcat logging 
> framework earlier this year. (ref: "Puzzled by Access Valve Logging" on the 
> dev list.) Konstantin Kolinko pointed out that I should have held the 
> discussion on the users list instead, and also that there were performance 
> reasons for leaving the existing logic alone...
>
>
>> With this split, the <MyLoggingFramework>AccessLogValve would extend the
>> AbstractAccessLogValve.
>
>
> I was not convinced by Konstantin, but did not have the time to undertake any 
> research. I /still/ have an item on my "todo" list to develop an 
> AccessLogValve that uses the implementation-defined tomcat logging framework 
> (which in my case is bound to log4j). Performance is not an issue for me, but 
> consistency of logging is more important.
>
> My first task was to split the logger class in exactly the way Cyrille 
> proposes. My initial impression several months ago was that the file handling 
> could be refactored into a separate class, which extended an abstract class 
> that performed the formatting (thus preserving a common set of formatting 
> definitions, and also preserving high performance for those installations 
> that require it).
>
> I am travelling at the moment, so haven't had time to review Cyrille's code. 
> However, I thought it would be helpful to register my thoughts as quickly as 
> possible.
>
> I hope his proposal is evaluated in a positive light. It isn't high priority, 
> but I think it represents a valuable step forward with code that hasn't 
> changed much over several releases.
>
> Regards,
>
> Brian
>
>
>> Regarding the existing Syslog implementations in Log4j and Logback, they
>> don't yet allow user to customise the syslog header fields but I plan to
>> propose to contribute these enhancements.
>>
>> Finally, regarding the idea of injecting a logging framework jar in Tomcat
>> classloader, I feel it makes things pretty difficult to understand with the
>> risk of collision of the jars.
>>
>> As a conclusion, I would be very happy to contribute to the Tomcat project
>> either the full SyslogAccessLogValve or just the split of the existing
>> AccessLogValve into an AbstractAccessLogValve with the formatting logic and
>> a AccessLogValve with the logic to write in files.
>>
>> Cyrille
>>
>>
>>
>>
>> On Thu, Dec 12, 2013 at 3:58 AM, Christopher Schultz <
>> ch...@christopherschultz.net> wrote:
>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA256
>>>
>>> Cyrille,
>>>
>>> On 12/11/13, 1:49 PM, Cyrille Le Clerc wrote:
>>>>
>>>> Dear Tomcat community,
>>>>
>>>> We at CloudBees implemented a SyslogAccessLogValve that outputs
>>>> the access logs to a syslog server.
>>>>
>>>> The support of Syslog is more detailed that what we can usually
>>>> find in java logging libraries as it allows to * configure all the
>>>> syslog header fields: appName, source hostname, severity and
>>>> facility * format syslog message according the RFC 3164 and to RFC
>>>> 5424
>>>
>>>
>>> Honestly, I think it would make more sense for the AccessLogValve to
>>> be tied instead of directly to a file or syslog, to be tied instead to
>>> a logging API. There already exist (relatively) standard syslog sinks
>>> for log4j, java.util.logging, etc. Why create another one?
>>>
>>> - -chris
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.15 (Darwin)
>>> Comment: GPGTools - http://gpgtools.org
>>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>>
>>> iQIcBAEBCAAGBQJSqSZYAAoJEBzwKT+lPKRYQJ8P/jgRDOCvSLgjZsAkVT32fSOf
>>> jAGlvkKssADw3h2vEQG2rerY7jG8YVBVe6sO1CCEBBfl/rjqxSireuWTqRI0Sc12
>>> KPl/pYgiJQhvA1OqDvj2kZfoL4s59MVJSlN1A3ZTEs7wp1udWXN/k5tsumIKL2dE
>>> 9/D+xDBBwbktVT8OXee6SmjGmCA3UeArVabEH67k6rPyA1koL7ScwVgTH+zbAj+b
>>> yf/NusknEGv1Qm37jipVV16vpV9ZR0WEHrCghtfUYtKPsPVAphZzh+DjAZ3hGW+j
>>> Do5m1DC/u/QOacJGMOcyrKOiMgfLV81C8x/y6M+5me0HSpYZIPKiOROgILqXyK+i
>>> UjKBkABWkeKL9T/0IsHAqQdfD0w37xgTb6Fa6lgq39CRQc+rdn+DuUrrg8H0pDqs
>>> T5bV8DXIXeyIYP0+5xpKuZJGmGdWYTiwzu15GexUBTFocfWj5A9BGN+dIm9q++hZ
>>> Rf1rwLaMXkXzKPXVmml+rNAELsup4S1wgQKeptCueNsloBvftZqg06QpaIPJz5WF
>>> 1aJhc4cn9or4oQMUs2Qcc7GnU6RV1pSycI8IyDpgqV/GBX0UPJibD1D99vet9JhF
>>> PfOtGYrzffGC3bv9Ebo6qOHb2SH0zqCE/C4e1ImsrdLTvb3zqAKwwtsjn5y3f2Kl
>>> CL48rzdXsU4lgV1IAijP
>>> =K/kz
>>> -----END PGP SIGNATURE-----
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>
>>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to