After this I tried using the application and got an NPE which lead me to
fix a few things and realize that it partly works.

Here is my newest code:
@Activate
private void activate(BundleContext context) {
  log.trace("Activating {}", getClass()); //$NON-NLS-1$

  RequestLogImpl requestLogImpl = new RequestLogImpl();
  requestLogImpl.setName("Logback Access Request Log");
  Optional.ofNullable(irisConfig)
     .map(config -> config.getValue(ConfigConstants.NCSA_LOG_CONFIG))
     .ifPresentOrElse(requestLogImpl::setFileName,
         () -> log.error("No configured NCSA request log file location"));
//$NON-NLS-1$

  RequestLogHandler requestLogHandler = new RequestLogHandler();
  requestLogHandler.setRequestLog(requestLogImpl);
  context.registerService(Handler.class, requestLogHandler, null);
}

Now I can debug and see that Jetty has both the standard NCSA logger and
the logback one and that it sends the log requests to both.

Issue now:
- How can I configure it to not have NCSA logger
- Log request going to logback don't even hit the previously mentioned
breakpoint, indicating that it is not "started".




On Fri, Feb 12, 2021 at 12:24 PM Alain Picard <[email protected]>
wrote:

> We're trying to switch Jetty request logging to logback access to get
> better control of options, especially compression on file rotation.
>
> The instructions are here <http://logback.qos.ch/access.html#jetty>:
>
> Basically have to make sure that jetty.xml includes *RequestLogHandler*
> and then add a reference to it pointing to
> ch.qos.logback.access.jetty.RequestLogImpl
>
> Now in the pax web documentation I would like to use the service
> registration approach as described here.
> <http://ops4j.github.io/pax/web/6.x/User-Guide.html#adding-specialized-contexthandlers>
>
> I created a small component with:
>     @Activate
>     private void activate(BundleContext context) {
>         log.trace("Activating {}", getClass()); //$NON-NLS-1$
>         RequestLogHandler requestLogHandler = new RequestLogHandler();
>         context.registerService(Handler.class, requestLogHandler, null);
>         RequestLogImpl requestLogImpl = new RequestLogImpl();
>         Optional.ofNullable(irisConfig)
>                 .map(config ->
> config.getValue(ConfigConstants.NCSA_LOG_CONFIG))
>                 .ifPresentOrElse(requestLogImpl::setFileName,
>                         () -> log.error("No configured NCSA request log
> file location")); //$NON-NLS-1$
>
>         context.registerService(RequestLog.class, requestLogImpl, null);
>     }
>
> The code is invoked correctly but I put a breakpoint in
> RequestLogImpl#getConfigurationFileURL but it is never called. Looking at
> my log I have the feeling that paxweb is starting before my code runs.
>
> So am I doing something wrong in registering the services or is it an
> issue of ordering or something else?
>
> Any help will be greatly appreciated.
>
> Cheers
> Alain
>
> --
> --
> ------------------
> OPS4J - http://www.ops4j.org - [email protected]
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "OPS4J" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/ops4j/7eGUTokx_cw/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ops4j/cafa4d6c-5eda-49e5-a72f-d17e1bd256edn%40googlegroups.com
> <https://groups.google.com/d/msgid/ops4j/cafa4d6c-5eda-49e5-a72f-d17e1bd256edn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - [email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ops4j/CAAq-gCyP6r%2B%3DMqC-p0LeVZeyZc5VyFY4ECF__oyVoLvwhD0jmA%40mail.gmail.com.

Reply via email to