[ 
https://issues.apache.org/jira/browse/UIMA-2421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13644980#comment-13644980
 ] 

Marshall Schor commented on UIMA-2421:
--------------------------------------

This reference http://www.onjava.com/pub/a/onjava/2002/06/19/log.html?page=2 
says the (common?) approach for this is to set levels on both the main logger, 
and on all (or some subset) of the handlers, in a loop, perhaps.  For this, you 
do need a way to access the handlers for a logger.

I would be in favor of following the common practice.  But that would require 
defining Handlers.  Currently, the UIMA Framework has one logging API, and 3 
alternative implementations: a custom one, one that is the built-in-to-Java 
logging framework, and one using Log4J logger impl.  The custom one doesn't 
have the idea of handlers, for instance. 

I'm ignorant about the history of why we have 3 implementations for logging, 
and whether or not we need to continue support for all of them going forward.  
I suspect that our custom one is (a) probably never used, because the default 
if not overridden is to use the one built-in-to-Java, and (b) was there before 
there was a standard logging framework in Java.
                
> Not able to change log level programmatically with UIMA logger
> --------------------------------------------------------------
>
>                 Key: UIMA-2421
>                 URL: https://issues.apache.org/jira/browse/UIMA-2421
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>    Affects Versions: 2.4.0SDK
>            Reporter: Jerry Cwiklik
>            Priority: Minor
>             Fix For: 2.4.1SDK
>
>
> UIMA Logger setLevel(Level) only partially works. It changes the level 
> associated with the logger, but its not changing a level in any of its 
> handlers (like ConsoleHandler). So the code,
> logger.setLevel(Level.FINEST);
> if ( logger.isLoggable(Level.FINEST) ) {
> } 
> works fine. What does *not* work is the following:
> logger.log(Level.FINEST, aMessage);
> The only workaround for this is to use, now deprecated, 
> setOutputStream(System.out). 
> Possible fix could be Uima Logger API extension to return an array of 
> handlers associated with a logger. The client application can than decide 
> appropriate log levels for each of the handlers programatically. 
> Another fix for this is to change setLevel(Level) implementation, and apply 
> the new setting across all the handlers associated with the logger. This is 
> less flexible than the first but perhaps more convenient.
> Any thoughts? 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to