I have an acceptable solution.
I use the appender-manager and change the filePattern via
        this.appendManager.setPatternProcessor( new PatternProcessor(
filePattern, this.appendManager.getPatternProcessor() ) );
Similarly (using a custom strategy) I change the base fileName.
Of course the appender object does not reflect these changes but it suits
my needs.

On Wed, Aug 21, 2019 at 1:27 PM Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> You can’t atomically swap an appender. If you remove it and then add a new
> one with the same name you will lose log events targeted at the appender
> while it is removed. You could add a new appender with a different name and
> then modify all the loggers using the old one to use the new one, but Log4j
> won’t do that for you.
>
> What problem are you trying to solve?  Log4j might already have a
> different way of supporting it.
>

I need to be able to change the log fileName and filePattern associated
with a specific RollingAppender from my running application plugin.
Is there a way to get an appender directly by name?


> Ralph
>
> > On Aug 21, 2019, at 10:44 AM, Fred Eisele <fredrick.eis...@gmail.com>
> wrote:
> >
> > Could construct a new appender and swap it for the old one?
> >
> > On Wed, Aug 21, 2019 at 8:39 AM Ralph Goers <ralph.go...@dslextreme.com>
> > wrote:
> >
> >> No. The file name is immutable.
> >>
> >> Ralph
> >>
> >>> On Aug 21, 2019, at 6:22 AM, Fred Eisele <fredrick.eis...@gmail.com>
> >> wrote:
> >>>
> >>> Given a RollingFileAppender is it possible to
> >> dyanamically/programmatically
> >>> change its fileName?
> >>>
> >>>       <RollingFile name="X_PLUGIN_FILE"
> >>>                    fileName="x.log}"
> >>>                    filePattern="x_%i.log}"
> >>>                    ignoreExceptions="false">
> >>>           <PatternLayout pattern="#linux %file:%method:%line - %msg%n"
> >> />
> >>>           <OnDemandTriggeringPolicy />
> >>>       </RollingFile>
> >>>
> >>> I need to be able to change the log file from my running application
> >> plugin.
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> >> For additional commands, e-mail: log4j-user-h...@logging.apache.org
> >>
> >>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>
>

Reply via email to