Log4j Configuration: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
=External=
* http://logging.apache.org/log4j/2.x/manual/configuration.html
=Internal=
=Internal=


* [[log4j#Subjects|log4j]]
* [[log4j#Subjects|log4j]]
* [[log4j Format Specification]]


=Turning Logging Off Completely for a Category=
=Turning Logging Off Completely for a Category=


<pre>
<syntaxhighlight lang='xml'>
<category name="io.novaordis.test">
<category name="io.novaordis.test">
     <priority value="OFF"/>
     <priority value="OFF"/>
</category>
</category>
</pre>
</syntaxhighlight>
 
=Turning Logging Off for an Inner Class=
 
If we have an inner class with its own Logging instance:
 
<syntaxhighlight lang='xml'>
package x.y.z;
 
public class A {
    ...
    public static class B  {
        private static final Logger log = Logger.getLogger(B.class);
        ...
    }
}
</syntaxhighlight>
 
then we refer to that category from a log4j.xml file as follows:
 
<syntaxhighlight lang='xml'>
<log4j:configuration ...>
    ...
    <category name="x.y.z.A$B">
      <priority value="DEBUG"/>
    </category>
    ...
</log4j:configuration>
</syntaxhighlight>
 
=Programmatic Configuration with Override of Configuration Files from Classpath=
 
<syntaxhighlight lang='java'>
public class SomeClass {
 
    private static Logger log; // DO NOT initialize here
    ....
 
    File log4jConfigFile = ...;
 
    if (log4jConfigFile != null)  {
        // we want to override the log4j configuration embedded with the jar
        URL url = log4jConfigFile.toURI().toURL();
        System.setProperty(LogManager.DEFAULT_CONFIGURATION_KEY, url.toExternalForm());
    }
 
    log = Logger.getLogger(SomeClass.class);
 
    ...
}
</syntaxhighlight>
 
=Configuration with Properties=
 
{{External|http://logging.apache.org/log4j/2.x/manual/configuration.html#Properties}}

Latest revision as of 21:32, 20 December 2018

External

Internal

Turning Logging Off Completely for a Category

<category name="io.novaordis.test">
    <priority value="OFF"/>
</category>

Turning Logging Off for an Inner Class

If we have an inner class with its own Logging instance:

package x.y.z;

public class A {
    ...
    public static class B  {
        private static final Logger log = Logger.getLogger(B.class);
        ...
    }
}

then we refer to that category from a log4j.xml file as follows:

<log4j:configuration ...>
    ...
    <category name="x.y.z.A$B">
       <priority value="DEBUG"/>
    </category>
    ...
</log4j:configuration>

Programmatic Configuration with Override of Configuration Files from Classpath

public class SomeClass {

    private static Logger log; // DO NOT initialize here
    .... 

    File log4jConfigFile = ...;

    if (log4jConfigFile != null)  {
        // we want to override the log4j configuration embedded with the jar
        URL url = log4jConfigFile.toURI().toURL();
        System.setProperty(LogManager.DEFAULT_CONFIGURATION_KEY, url.toExternalForm());
    }

    log = Logger.getLogger(SomeClass.class);

    ...
}

Configuration with Properties

http://logging.apache.org/log4j/2.x/manual/configuration.html#Properties