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

Ralph Goers edited comment on LOG4J2-568 at 3/13/14 6:04 PM:
-------------------------------------------------------------

I am assuming that what you are saying is that you changed the value of the 
size attribute on the SizeBasedTriggeringPolicy while the app was running?  If 
not I may be answering the wrong question.

Unfortunately, yes - it is probably expected. In order to not lose any data 
Appenders use a Manager to perform most of their work. Each manager has a "key" 
that consists of its name and any significant configuration attributes 
(fileName, ip and port for a socket, etc).  The key usually doesn't contain all 
the configuration items. When you change the configuration a new Appender will 
be created in the new configuration, but if it finds an existing manager with 
the same key it will reuse it.  If no Appender references a manager after 
reconfiguration it will be stopped and removed.  Most objects, including 
Managers, are immutable after they are created to avoid threading issues.

The effect of this is that while you are logging if the same Appender exists in 
both configurations no data will be lost since the stream or other resource the 
manager is using isn't closed.  

If you remove the appender from the configuration, reconfigure, then add the 
appender back and reconfigure, you should then see the change take effect. Of 
course, no data will be routed to the appender while it is removed from the 
configuration.

It may be possible to modify things so that some attributes can be updated 
during a reconfiguration. But that will probably have to be done on a case, by 
case basis.


was (Author: [email protected]):
Unfortunately, yes - it is probably expected. In order to not lose any data 
Appenders use a Manager to perform most of their work. Each manager has a "key" 
that consists of its name and any significant configuration attributes 
(fileName, ip and port for a socket, etc).  The key usually doesn't contain all 
the configuration items. When you change the configuration a new Appender will 
be created in the new configuration, but if it finds an existing manager with 
the same key it will reuse it.  If no Appender references a manager after 
reconfiguration it will be stopped and removed.  Most objects, including 
Managers, are immutable after they are created to avoid threading issues.

The effect of this is that while you are logging if the same Appender exists in 
both configurations no data will be lost since the stream or other resource the 
manager is using isn't closed.  

If you remove the appender from the configuration, reconfigure, then add the 
appender back and reconfigure, you should then see the change take effect. Of 
course, no data will be routed to the appender while it is removed from the 
configuration.

It may be possible to modify things so that some attributes can be updated 
during a reconfiguration. But that will probably have to be done on a case, by 
case basis.

> Appender configuration did not  automatically detect changes to the 
> configuration file
> --------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-568
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-568
>             Project: Log4j 2
>          Issue Type: Test
>          Components: Appenders, Configurators
>    Affects Versions: 2.0-rc1
>            Reporter: vibin
>
> "SizeBasedTriggeringPolicy" (size) attribute of the Appender did not detect 
> the automatic changes to the file. I modified the configuration during run 
> time did not detect the changes.
> Here is the configuration:
> <Policies>
> <TimeBasedTriggeringPolicy />
> <SizeBasedTriggeringPolicy size="5 KB" />
> </Policies>
> Is this expected  ? 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to