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

Remko Popma edited comment on LOG4J2-589 at 9/24/14 4:58 PM:
-------------------------------------------------------------

I see.

I think it may have to do with this test class:
{code}
package org.apache.logging.log4j.test;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.plugins.Plugin;

@Plugin(name="ExtendedLevel", category="Level")
public class ExtendedLevels {
    public static final Level NOTE = Level.forName("NOTE", 350);
    public static final Level DETAIL = Level.forName("DETAIL", 450);
}
{code}

Just doing a {{Class.forName("org.apache.logging.log4j.test.ExtendedLevels")}} 
would create these custom levels in memory. So a configuration that contains an 
{{<ExtendedLevel />}} element would create the NOTE and DETAIL levels. Would 
that be it?

If that was the intention I think it would be more user-friendly if users can 
just do this in configuration without having to write any java code:
{code}
<Configuration status="warn">
  <CustomLevel name="DIAG" intLevel="350" />
  <CustomLevel name="NOTICE" intLevel="450" />
...
{code}



was (Author: rem...@yahoo.com):
I see.

I think it may have to do with this test class:
{code}
package org.apache.logging.log4j.test;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.plugins.Plugin;

@Plugin(name="ExtendedLevel", category="Level")
public class ExtendedLevels {
    public static final Level NOTE = Level.forName("NOTE", 350);
    public static final Level DETAIL = Level.forName("DETAIL", 450);
}
{code}

Just doing a {{Class.forName("org.apache.logging.log4j.test.ExtendedLevels")}} 
would create these custom levels in memory. So a configuration that contains an 
{{<ExtendedLevel />}} element would create the DIAG and NOTICE levels. Would 
that be it?

If that was the intention I think it would be more user-friendly if users can 
just do this in configuration without having to write any java code:
{code}
<Configuration status="warn">
  <CustomLevel name="DIAG" intLevel="350" />
  <CustomLevel name="NOTICE" intLevel="450" />
...
{code}


> Allow the use of custom levels in configuration
> -----------------------------------------------
>
>                 Key: LOG4J2-589
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-589
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Configurators
>    Affects Versions: 2.0-rc1
>            Reporter: James Hutton
>              Labels: configuration, custom, level
>             Fix For: 2.2
>
>
> Previous title: Use forName instead of getLevel and valueOf for configuration
> Without this one cannot use custom log levels in configuration without 
> forking a large amount of code.  Either the forName method needs to be 
> removed and custom log levels should be explicitly forbidden, or support 
> should be consistent.
> Classes that would need to be modified:
> BaseConfiguration, NullConfiguration, and DefaultConfiguration.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to