You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2015/06/17 17:21:54 UTC

[1/2] logging-log4j2 git commit: Added 3 questions to FAQ: * How do I reconfigure log4j2 in code with a specific configuration file? * How do I change a logger's level in code? * How do I shut down log4j2 in code?

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 794c46911 -> 155dfc739


Added 3 questions to FAQ:
* How do I reconfigure log4j2 in code with a specific configuration
file?
* How do I change a logger's level in code?
* How do I shut down log4j2 in code?

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2d731112
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2d731112
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2d731112

Branch: refs/heads/master
Commit: 2d7311127d5dbc41a7b9a6ea95206aa13324a5d7
Parents: 3d92506
Author: rpopma <rp...@apache.org>
Authored: Thu Jun 18 00:20:51 2015 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Jun 18 00:20:51 2015 +0900

----------------------------------------------------------------------
 src/site/xdoc/faq.xml | 57 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2d731112/src/site/xdoc/faq.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/faq.xml b/src/site/xdoc/faq.xml
index a078c00..37bea76 100644
--- a/src/site/xdoc/faq.xml
+++ b/src/site/xdoc/faq.xml
@@ -28,6 +28,9 @@
       <li><a href="#which_jars">Which JAR files do I need?</a></li>
       <li><a href="#config_location">How do I specify the configuration file location?</a></li>
       <li><a href="#config_from_code">How do I configure log4j2 in code without a configuration file?</a></li>
+      <li><a href="#reconfig_from_code">How do I reconfigure log4j2 in code with a specific configuration file?</a></li>
+      <li><a href="#set_logger_level_from_code">How do I change a logger's level in code?</a></li>
+      <li><a href="#shutdown">How do I shut down log4j2 in code?</a></li>
       <li><a href="#config_sep_appender_level">How do I send log messages with different levels to different appenders?</a></li>
       <li><a href="#troubleshooting">How do I debug my configuration?</a></li>
       <li><a href="#separate_log_files">How do I dynamically write to separate log files?</a></li>
@@ -66,6 +69,60 @@
          (You can pass null for the class loader.)
          Be aware that this class is not part of the public API so your code may break with any minor release.</p>
 
+        <a name="reconfig_from_code" />
+        <h4>How do I reconfigure log4j2 in code with a specific configuration file?</h4>
+        <p>See the below example.
+         Be aware that this LoggerContext class is not part of the public API so your code may break with any minor release.</p>
+        <pre class="prettyprint linenums">// import org.apache.logging.log4j.core.LoggerContext;
+
+LoggerContext context = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false);
+File file = new File("path/to/a/different/log4j2.xml");
+
+// this will force a reconfiguration
+context.setConfigLocation(file.toURI());
+</pre>
+
+        <a name="set_logger_level_from_code" />
+        <h4>How do I change a logger's level in code?</h4>
+        <p>See the below example.
+         Be aware that these classes are not part of the public API so your code may break with any minor release.</p>
+        <pre class="prettyprint linenums">// import org.apache.logging.log4j.core.LoggerContext;
+// import org.apache.logging.log4j.core.config.Configuration;
+// import org.apache.logging.log4j.core.config.LoggerConfig;
+
+LoggerContext context = (LoggerContext) LogManager.getContext(false);
+Configuration config = context.getConfiguration();
+LoggerConfig rootConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
+rootConfig.setLevel(Level.DEBUG);
+
+// You could also specify the actual logger name as below
+// and it will return the LoggerConfig used by the Logger.
+LoggerConfig loggerConfig = config.getLoggerConfig("com.apache.test");
+loggerConfig.setLevel(Level.TRACE);
+
+// This causes all Loggers to refetch information from their LoggerConfig.
+context.updateLoggers();
+</pre>
+
+        <a name="shutdown" />
+        <h4>How do I shut down log4j2 in code?</h4>
+        <p>Normally there is no need to do this manually.
+         Each LoggerContext registers a shutdown hook that takes care of releasing resources
+         when the JVM exits (unless system property <code>log4j.shutdownHookEnabled</code>
+         is set to <code>false</code>).        
+         Web applications should include the log4j-web
+         module in their classpath which disables the shutdown hook but instead
+         cleans up log4j resources when the web application is stopped.</p>
+        <p>However, if you need to manually shut down log4j, you can do so
+        as in the below example.
+         Be aware that these classes are not part of the public API so your code may break with any minor release.</p>
+        <pre class="prettyprint linenums">// import org.apache.logging.log4j.core.LoggerContext;
+// import org.apache.logging.log4j.core.config.Configurator;
+
+// get the current context
+LoggerContext context = (LoggerContext) LogManager.getContext();
+Configurator.shutdown(context);</pre>
+
 		<a name="config_sep_appender_level" />
         <h4>How do I send log messages with different levels to different appenders?</h4>
 		You don't need to declare separate loggers to achieve this.


[2/2] logging-log4j2 git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/logging-log4j2.git

Posted by rp...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/logging-log4j2.git

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/155dfc73
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/155dfc73
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/155dfc73

Branch: refs/heads/master
Commit: 155dfc739211f3262fc089c56da939393b4ed80b
Parents: 2d73111 794c469
Author: rpopma <rp...@apache.org>
Authored: Thu Jun 18 00:21:16 2015 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Jun 18 00:21:16 2015 +0900

----------------------------------------------------------------------
 doap_log4j2.rdf                                 | 66 ++++++++++++++++++
 .../log4j/core/config/ConfigurationFactory.java | 48 +++++++++----
 .../log4j/core/BasicConfigurationFactory.java   |  4 +-
 .../log4j/flume/appender/FlumeAppender.java     |  4 +-
 .../log4j/flume/appender/FlumeAvroManager.java  | 71 ++++++++++++++------
 .../flume/appender/FlumePersistentManager.java  | 15 ++---
 .../log4j/flume/appender/FlumeAppenderTest.java | 41 +++++++++++
 .../ext/logging/log4j2/Log4j2Logger.java        |  2 +-
 src/changes/changes.xml                         |  6 ++
 src/site/xdoc/articles.xml                      |  4 ++
 10 files changed, 211 insertions(+), 50 deletions(-)
----------------------------------------------------------------------