> On 15.02.2017, at 15:37, Marshall Schor <[email protected]> wrote:
> 
> I'm hearing both:
> 
> a) have UIMA not log anything unless it is "provided with" some logger back
> end.  In other words, the core UIMA without a back end should run with no
> logging (and hopefully, no delays for logging calls).
> 
> b) have UIMA in some new-user-getting-started configuration see logs by 
> default.
> 
> Is this correct?
> 
> If so, it seems we need to have some way to package UIMA to have this
> user-getting-started configuration by default, which can be stripped out for
> case (a).  Does this sound right?

I'm not sure I understand the problem. The UIMA logging framework
already now uses different kinds of backends. By default, the 
JSR47Logger_impl backend is used (aka Java Utility Logging).

The Java Utility Logging that comes with the JRE has a default logging
configuration that prints certain levels to certain channels. This
is not something that UIMA invents, but something that JRE does.

Now users have these options:

1) provide the JRE with a JSR47 configuration file via a system property
2) configure JSR47 programmatically after program start
3) switch UIMA to a different logging backend via a system property
   and then again perform 1) or 2) if they are not happy with the
   logging defaults of that backend

Irrespective of what kind of backend UIMA uses, it will always come
with some defaults and users will have to do 1) or 2).

We could drop all logging code from the framework entirely, but I
wouldn't like that because it would make it impossible to enable
(debug) logging through the proper mechanisms of the logging framework
being used.

I think it is reasonable that UIMA includes logging and actually performs
logging on sensible logging levels including TRACE, DEBUG, INFO, ERROR, FATAL,
etc. If users are not happy with the defaults of the logging framework that they
use, then they need to reconfigure it. I find it hard to imagine that it would
not be possible to change the logging framework settings when running Hadoop
jobs or when embedding UIMA in an application. I have little experience with
Hadoop in that respect, but in applications, I usually use log4j and I then 
configure UIMA to also use the log4j backend. Following that I can happily 
control the logging levels of my application and of UIMA (framework as well
as all components that log through the UIMA logging framework).

Cheers,

-- Richard

Reply via email to