[ 
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]

Reply via email to