not lose log events while reload its configuration problem

2014-04-20 Thread huang
Hi all,
 I am learning the source code of log4j 2.I want to know  how log4j 2 
can reload its configuration without losing log events while reconfiguration 
is taking place..How can  it  make sure it don't lose log events while reload 
its configuration. 
Thanks.
  With regards.



Re: not lose log events while reload its configuration problem

2014-04-20 Thread Ralph Goers
Unlike Log4j 1 and Logback, Log4j 2 separates the configuration from the actual 
Logger objects.  When a reconfiguration occurs a new Configuration is created.  
Once it is completed each Logger is modified to reference a LoggerConfig in the 
new Configuration.  So for a small amount of time some Loggers may point to the 
old Configuration while some point to the new Configuration, but it will never 
be the case that a Logger is us configured.

Ralph

 On Apr 20, 2014, at 12:18 AM, huang huangyu...@163.com wrote:
 
 Hi all,
 I am learning the source code of log4j 2.I want to know  how log4j 2 
 can reload its configuration without losing log events while reconfiguration 
 is taking place..How can  it  make sure it don't lose log events while 
 reload its configuration. 
 Thanks.
  With regards.
 

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



Re: not lose log events while reload its configuration problem

2014-04-20 Thread Matt Sicker
At first, I thought it looked like a bridge design pattern. Upon further
comparison, it doesn't really fit that pattern (nor does it fit any other
common design patterns that I can see). It's rather neat, actually.

Essentially, a Configuration is tied to a LoggerContext. The LoggerContext
produces Loggers, and those Loggers get paired to a Configuration through
the LoggerConfig object. When you call a method on the Logger object, it
will pass along the log event information to its current LoggerConfig. That
LoggerConfig is where appenders, filters, etc., are mostly all located, so
the configured logger is really used at that point.

Thus, when you reconfigure, all the Loggers will still reference the old
configuration still, but each one gets updated and switched over to the new
config atomically. No log messages get lost during the configuration
parsing and construction of the new LoggerConfig objects (and any other
plugin objects relevant to the new config).

I hope that wasn't too in-depth!


On 20 April 2014 06:19, Ralph Goers rgo...@apache.org wrote:

 Unlike Log4j 1 and Logback, Log4j 2 separates the configuration from the
 actual Logger objects.  When a reconfiguration occurs a new Configuration
 is created.  Once it is completed each Logger is modified to reference a
 LoggerConfig in the new Configuration.  So for a small amount of time some
 Loggers may point to the old Configuration while some point to the new
 Configuration, but it will never be the case that a Logger is us configured.

 Ralph

  On Apr 20, 2014, at 12:18 AM, huang huangyu...@163.com wrote:
 
  Hi all,
  I am learning the source code of log4j 2.I want to know  how
 log4j 2 can reload its configuration without losing log events while
 reconfiguration is taking place..How can  it  make sure it don't lose log
 events while reload its configuration.
  Thanks.
   With regards.
 

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




-- 
Matt Sicker boa...@gmail.com