Just to close on this, I found a solution:

Our WebApplication in org.eclipse.orion.server.configurator makes use of a 
JettyConfigurator to start the server. The JettyConfigurator calls 
startServer() that eventually calls HttpServerManager.updated(). 

We need to take advantage of a JettyCustomizer.

In WebApplication we add the property:
properties.put(JettyConstants.CUSTOMIZER_CLASS, 
"org.eclipse.orion.server.jettycustomizer.OrionJettyCustomizer");

And the OrionJettyCustomizer is a class extending the abstract 
JettyCustomizer in a fragment of org.eclipse.equinox.http.jetty. We 
override the customizeContext() method and include the code I mention 
below.

Cheers...
Anthony




From:   Joakim Erdfelt <[email protected]>
To:     JETTY user mailing list <[email protected]>
Date:   2014/03/07 01:19 PM
Subject:        Re: [jetty-users] Adding a handler so I can get 
HTTP-access logs for an Orion server
Sent by:        [email protected]



You are not hacking the jetty source. honest.

A thought,
Orion could hook into the XML based configuration options for jetty, which 
would allow you supply some XML configuration files to supplement the 
running Jetty instance.
But in reality, that is really no different than what you are currently 
doing.
You either do the work in XML or in Java, same effort, same code being 
executed, same end result.

--
Joakim Erdfelt <[email protected]>
webtide.com - intalio.com/jetty
Expert advice, services and support from from the Jetty & CometD experts
eclipse.org/jetty - cometd.org


On Fri, Mar 7, 2014 at 9:58 AM, Anthony Hunter <[email protected]> 
wrote:
Hi Team, 

I am trying to enable HTTP-access logs for Orion. Details are at 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=429063#c3 

If you look at https://wiki.eclipse.org/Jetty/Howto/Configure_Request_Logs 
and some of the other documentation, it suggests I need to add an handler 
to the Jetty server. 

Our WebApplication in org.eclipse.orion.server.configurator makes use of a 
JettyConfigurator to start the server. The JettyConfigurator calls 
startServer() that eventually calls HttpServerManager.updated(). 

In this updated() method I can comment out the handler line: 
        //server.setHandler(httpContext); 

and replace it with what is suggested in the Jetty documentation: 
        HandlerCollection handlers = new HandlerCollection(); 
        ContextHandlerCollection contexts = new 
ContextHandlerCollection(); 
        RequestLogHandler requestLogHandler = new RequestLogHandler(); 
        handlers.setHandlers(new 
Handler[]{contexts,httpContext,requestLogHandler}); 
        server.setHandler(handlers); 
                  
        NCSARequestLog requestLog = new 
NCSARequestLog("./logs/jetty-yyyy_mm_dd.request.log"); 
        requestLog.setRetainDays(90); 
        requestLog.setAppend(true); 
        requestLog.setExtended(true); 
        requestLog.setLogTimeZone("EST"); 
        requestLogHandler.setRequestLog(requestLog); 

This gives me exactly what I am looking for, but obviously I am hacking 
the jetty source and need to find the right way to do this, either through 
an extension point or the like. 

Unfortunately I cannot seem to find anything. Any ideas on how to properly 
add a handler here? 

Cheers...
Anthony
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to