Have you considered using a routing appender[1]? It can write to a specific file based on jvm system properties, thread context (MDC), or any other pattern parameter.
1. https://logging.apache.org/log4j/2.x/manual/appenders.html#RoutingAppender On Thu, Aug 22, 2019, at 08:49, Fred Eisele wrote: > 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 > > > > >