[
https://issues.apache.org/jira/browse/LOG4J2-314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13716286#comment-13716286
]
Sudharma Puranik commented on LOG4J2-314:
-----------------------------------------
check this example probably you will understand how Routing works.
{noformat}
public static void main(String[] args) {
ThreadContext.put("fruits", "apple");
logger.info("This message is written to a new file with
requestId in the file name");
logger.info("Another message written to that same file");
for (int i = 0; i <= 5000; i++) {
logger.debug(" Loop 1 " + i);
}
// ThreadContext.remove("requestId");
ThreadContext.put("fruits", "orange");
logger.info("This message is written to a new file with
requestId in the file name");
logger.info("Another message written to that same file");
logger.debug("Sudharma Tested");
for (int i = 0; i <= 500000; i++) {
logger.debug("Loop 1 " + i);
}
logger.info("This message is written to the default log file");
}
{noformat}
*log4j2.xml*
{noformat}
<Routing name="Routing">
<Routes pattern="$${ctx:fruits}">
<Route key="apple">
<RollingFile
name="Rolling-${ctx:fruits}" fileName="logs/apple-${ctx:fruits}.log"
filePattern="./logs/${date:yyyy-MM}/${ctx:fruits}-apple-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout>
<pattern>%d{ISO8601}
[%t] %p %c{3} %L - %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="6"
modulate="true"
/>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
</RollingFile>
</Route>
<Route>
<RollingFile
name="Rolling-${ctx:fruits}" fileName="logs/other-${ctx:fruits}.log"
filePattern="./logs/${date:yyyy-MM}/${ctx:fruits}-other-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout>
<pattern>%d{ISO8601}
[%t] %p %c{3} %L - %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="6"
modulate="true"
/>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
{noformat}
> How to create multiple appenders at runtime, sharing an AsyncAppender?
> ----------------------------------------------------------------------
>
> Key: LOG4J2-314
> URL: https://issues.apache.org/jira/browse/LOG4J2-314
> Project: Log4j 2
> Issue Type: Question
> Components: Appenders, Configurators
> Reporter: Sudharma Puranik
> Attachments: asyncAppendThread.png, log4j2.xml, loggerThread.png,
> TestAppender.zip
>
>
> I have a log4j2.xml configuration file from which I am getting the Logger,
> attached is the snapshot. when my logger is created a new thread is created.
> Programmatically,I create a RollingFileAppender and attach the it to
> AsyncAppender . I attach the Async Appender to the configuration of the
> log4j.xml, And when I start the Async Appender again a new thread is created.
> Is this a bug? because I get a logger a new thread is generated and when I
> create a async appender another thread is created and both are doing the same
> job.
> Also there is already a asyncappender in my log4j2.xml and I am creating one
> via program. Will this cause a problem? I did this because I am currently
> unable to hook my programmatically created appender to the AsyncAppender
> defined in log4j2.xml.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]