[ 
https://issues.apache.org/jira/browse/LOG4J2-878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

saran sundar updated LOG4J2-878:
--------------------------------
    Description: 
OS: Windows
Software platform: j2ee, spring, webservices, junit, log4j2
I want to make sure that the failover configuration works as expected.
I configured failover appender with two rolling file appenders. Primary rolling 
file appender configured to a shared folder in different computer. Secondary 
file appender pointing to my local file system. Once after i ran the junit 
program and the first debug statement printed, i removed the share location 
from the other computer in the network for the primary appender. As expected 
next debug statements ( i left thread.sleep(30000) in between each debug 
statement in junit program) were redirect to secondary file appender. However 
at the time of retry by failover appender , it tries to reconnect to the 
primary location which is up now (enabled the share location in different 
computer), but received following error..

2014-10-21 10:34:11,463 ERROR Unable to write to stream 
//L-Computer1/test/logs/primary.log for appender primeCompressedDaily
2014-10-21 10:34:11,463 ERROR An exception occurred processing Appender 
primeCompressedDaily 
org.apache.logging.log4j.core.appender.AppenderLoggingException: Error flushing 
stream //L-Computer1/test/logs/primary.log
        at 
org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:159)
        at 
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:108)
        at 
org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:86)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
        at 
org.apache.logging.log4j.core.appender.FailoverAppender.callAppender(FailoverAppender.java:117)
        at 
org.apache.logging.log4j.core.appender.FailoverAppender.append(FailoverAppender.java:109)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
        at 
org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.callAppenders(AsyncAppender.java:288)
        at 
org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:240)
Caused by: java.io.IOException: The specified network name is no longer 
available
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:318)
        at 
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at 
org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:156)
        ... 8 more

2014-10-21 10:39:31,484 ERROR Unable to write to stream 
//L-Computer1/test/logs/primary.log for appender primeCompressedDaily

log4j2.xml entries is given below,

<?xml version="1.0" encoding="UTF-8"?>
<!-- set status below to FATAL to suppress a bug in log4j2: "ERROR appender 
Failover has no parameter that matches element Failovers" -->
<!--  other working value for status is "warn" -  -->
<Configuration status="warn" name="log4j2" packages="com.ims.log4j">
        <Appenders>
        
                <Console name="stdout" target="SYSTEM_OUT" 
ignoreExceptions="false">
                        <PatternLayout pattern="%d{ABSOLUTE} %1p %X{userinfo} 
%c{1}:%L - %m%n"/>
                </Console>
                                
                <RollingFile name="compressedDaily" 
fileName="c:/installed/Tomcat-7.0.12/logs/secondary.log"
                        
filePattern="c:/installed/Tomcat-7.0.12/logs/secondary.log.%d{yyyy-MM-dd}.gz" 
ignoreExceptions="false">
                        <PatternLayout>
                                <Pattern>%d{ABSOLUTE} %1p %X{userinfo} %c{1}:%L 
- %m%n</Pattern>
                        </PatternLayout>
                        <Policies>
                                <TimeBasedTriggeringPolicy/>
                                <SizeBasedTriggeringPolicy/>
                        </Policies>
                </RollingFile>
                
                <RollingFile name="primeCompressedDaily" 
fileName="//L-Computer1/test/logs/primary.log"
                        
filePattern="//L-Computer1/test/logs/primary.log.%d{yyyy-MM-dd}.gz" 
ignoreExceptions="false" >
                        <PatternLayout>
                                <Pattern>%d{ABSOLUTE} %1p %X{userinfo} %c{1}:%L 
- %m%n</Pattern>
                        </PatternLayout>
                        <Policies>
                                <TimeBasedTriggeringPolicy/>
                                <SizeBasedTriggeringPolicy/>
                        </Policies>
                </RollingFile>
                
                <Failover name="FailoverAppender" 
primary="primeCompressedDaily" retryInterval="61" ignoreExceptions="false"> 
                <Failovers>
                        <AppenderRef ref="compressedDaily" />
                </Failovers>
            </Failover>
            
            <Async name="asyncCompressed">
                <AppenderRef ref="FailoverAppender" />
            </Async>

            <Async name="asyncStdout">
                <AppenderRef ref="stdout" />
            </Async>
        
        </Appenders>
                        
        <Loggers>
        
                <Root level="trace">
                <AppenderRef ref="asyncCompressed" level="trace"/>
                <AppenderRef ref="asyncStdout" level="trace"/>
        </Root>
        
            <Logger name="com.ims" level="debug" includeLocation="true" 
additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
            
            <Logger name="org.apache.cxf.interceptor.LoggingInInterceptor" 
level="info" includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
            
            <Logger name="org.apache.cxf.interceptor.LoggingOutInterceptor" 
level="info" includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
        
                <Logger name="org.hibernate" level="error" 
includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
        
            <Logger name="test.escalation" level="debug" includeLocation="true" 
additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
            
            <Logger name="org.apache.cxf" level="info" includeLocation="true" 
additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>           
        
        </Loggers>      
        
</Configuration>

Junit method
@Test
        public void log4jTest() throws Exception {

                System.out.println("log4j2 test");
                Thread.sleep(30000);
                log.error("debug-log4j2 test*1");
                Thread.sleep(60000);
                log.error("debug-log4j2 test*2");
                Thread.sleep(30000);
                System.out.println("debug-log4j2 test*3");
                Thread.sleep(70000);
                log.info("debug-log4j2 test*4");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*5");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*6");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*7");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*8");
                Thread.sleep(290000);
                log.debug("debug-log4j2 test*9");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*10");
                System.out.println("debug-log4j2 test*6");

        }

PS Please forgive if I wasn't narrate the problem properly. any quick help in 
this issue would be highly appreciated.


  was:
OS: Windows
Software platform: j2ee, spring, webservices, junit, log4j2
I want to make sure that the failover configuration works as expected.
I configured failover appender with two rolling file appenders. Primary rolling 
file appender configured to a shared folder in different computer. Secondary 
file appender pointing to my local file system. Once after i ran the junit 
program and the first debug statement printed, i removed the share location 
from the other computer in the network for the primary appender. As expected 
next debug statements ( i left thread.sleep(30000) in between each debug 
statement in junit program) were redirect to secondary file appender. However 
at the time of retry by failover appender , it tries to reconnect to the 
primary location which is up now (enabled the share location in different 
computer), but received following error..

2014-10-21 10:34:11,463 ERROR Unable to write to stream 
//L-Computer1/test/logs/primary.log for appender primeCompressedDaily
2014-10-21 10:34:11,463 ERROR An exception occurred processing Appender 
primeCompressedDaily 
org.apache.logging.log4j.core.appender.AppenderLoggingException: Error flushing 
stream //L-Computer1/test/logs/primary.log
        at 
org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:159)
        at 
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:108)
        at 
org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:86)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
        at 
org.apache.logging.log4j.core.appender.FailoverAppender.callAppender(FailoverAppender.java:117)
        at 
org.apache.logging.log4j.core.appender.FailoverAppender.append(FailoverAppender.java:109)
        at 
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
        at 
org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.callAppenders(AsyncAppender.java:288)
        at 
org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:240)
Caused by: java.io.IOException: The specified network name is no longer 
available
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:318)
        at 
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at 
org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:156)
        ... 8 more

2014-10-21 10:39:31,484 ERROR Unable to write to stream 
//L-Computer1/test/logs/primary.log for appender primeCompressedDaily

log4j2.xml entries is given below,

<?xml version="1.0" encoding="UTF-8"?>
<!-- set status below to FATAL to suppress a bug in log4j2: "ERROR appender 
Failover has no parameter that matches element Failovers" -->
<!--  other working value for status is "warn" -  -->
<Configuration status="warn" name="log4j2" packages="com.ims.log4j">
        <Appenders>
        
                <Console name="stdout" target="SYSTEM_OUT" 
ignoreExceptions="false">
                        <PatternLayout pattern="%d{ABSOLUTE} %1p %X{userinfo} 
%c{1}:%L - %m%n"/>
                </Console>
                                
                <RollingFile name="compressedDaily" 
fileName="c:/installed/Tomcat-7.0.12/logs/secondary.log"
                        
filePattern="c:/installed/Tomcat-7.0.12/logs/secondary.log.%d{yyyy-MM-dd}.gz" 
ignoreExceptions="false">
                        <PatternLayout>
                                <Pattern>%d{ABSOLUTE} %1p %X{userinfo} %c{1}:%L 
- %m%n</Pattern>
                        </PatternLayout>
                        <Policies>
                                <TimeBasedTriggeringPolicy/>
                                <SizeBasedTriggeringPolicy/>
                        </Policies>
                </RollingFile>
                
                <RollingFile name="primeCompressedDaily" 
fileName="//L-Computer1/test/logs/primary.log"
                        
filePattern="//L-Computer1/test/logs/primary.log.%d{yyyy-MM-dd}.gz" 
ignoreExceptions="false" >
                        <PatternLayout>
                                <Pattern>%d{ABSOLUTE} %1p %X{userinfo} %c{1}:%L 
- %m%n</Pattern>
                        </PatternLayout>
                        <Policies>
                                <TimeBasedTriggeringPolicy/>
                                <SizeBasedTriggeringPolicy/>
                        </Policies>
                </RollingFile>
                
                <Failover name="FailoverAppender" 
primary="primeCompressedDaily" retryInterval="61" ignoreExceptions="false"> 
                <Failovers>
                        <AppenderRef ref="compressedDaily" />
                </Failovers>
            </Failover>
            
            <Async name="asyncCompressed">
                <AppenderRef ref="FailoverAppender" />
            </Async>

            <Async name="asyncStdout">
                <AppenderRef ref="stdout" />
            </Async>
        
        </Appenders>
                        
        <Loggers>
        
                <Root level="trace">
                <AppenderRef ref="asyncCompressed" level="trace"/>
                <AppenderRef ref="asyncStdout" level="trace"/>
        </Root>
        
            <Logger name="com.ims" level="debug" includeLocation="true" 
additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
            
            <Logger name="org.apache.cxf.interceptor.LoggingInInterceptor" 
level="info" includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
            
            <Logger name="org.apache.cxf.interceptor.LoggingOutInterceptor" 
level="info" includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
        
                <Logger name="org.hibernate" level="error" 
includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
        
            <Logger name="epraxis.escalation" level="debug" 
includeLocation="true" additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>
            
            <Logger name="org.apache.cxf" level="info" includeLocation="true" 
additivity="false">
              <AppenderRef ref="asyncCompressed"/>
            </Logger>           
        
        </Loggers>      
        
</Configuration>

Junit method
@Test
        public void log4jTest() throws Exception {

                System.out.println("log4j2 test");
                Thread.sleep(30000);
                log.error("debug-log4j2 test*1");
                Thread.sleep(60000);
                log.error("debug-log4j2 test*2");
                Thread.sleep(30000);
                System.out.println("debug-log4j2 test*3");
                Thread.sleep(70000);
                log.info("debug-log4j2 test*4");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*5");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*6");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*7");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*8");
                Thread.sleep(290000);
                log.debug("debug-log4j2 test*9");
                Thread.sleep(30000);
                log.debug("debug-log4j2 test*10");
                System.out.println("debug-log4j2 test*6");

        }

PS Please forgive if I wasn't narrate the problem properly. any quick help in 
this issue would be highly appreciated.



> Failover appender throws "Error flushing stream 
> //L-Computer1/test/logs/primary.log" at the time of retry, but the location 
> is up
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-878
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-878
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0.2
>         Environment: development and will be moved to production in a weeks 
> time.
>            Reporter: saran sundar
>            Priority: Critical
>              Labels: test
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> OS: Windows
> Software platform: j2ee, spring, webservices, junit, log4j2
> I want to make sure that the failover configuration works as expected.
> I configured failover appender with two rolling file appenders. Primary 
> rolling file appender configured to a shared folder in different computer. 
> Secondary file appender pointing to my local file system. Once after i ran 
> the junit program and the first debug statement printed, i removed the share 
> location from the other computer in the network for the primary appender. As 
> expected next debug statements ( i left thread.sleep(30000) in between each 
> debug statement in junit program) were redirect to secondary file appender. 
> However at the time of retry by failover appender , it tries to reconnect to 
> the primary location which is up now (enabled the share location in different 
> computer), but received following error..
> 2014-10-21 10:34:11,463 ERROR Unable to write to stream 
> //L-Computer1/test/logs/primary.log for appender primeCompressedDaily
> 2014-10-21 10:34:11,463 ERROR An exception occurred processing Appender 
> primeCompressedDaily 
> org.apache.logging.log4j.core.appender.AppenderLoggingException: Error 
> flushing stream //L-Computer1/test/logs/primary.log
>       at 
> org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:159)
>       at 
> org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:108)
>       at 
> org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:86)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
>       at 
> org.apache.logging.log4j.core.appender.FailoverAppender.callAppender(FailoverAppender.java:117)
>       at 
> org.apache.logging.log4j.core.appender.FailoverAppender.append(FailoverAppender.java:109)
>       at 
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
>       at 
> org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.callAppenders(AsyncAppender.java:288)
>       at 
> org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:240)
> Caused by: java.io.IOException: The specified network name is no longer 
> available
>       at java.io.FileOutputStream.writeBytes(Native Method)
>       at java.io.FileOutputStream.write(FileOutputStream.java:318)
>       at 
> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
>       at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
>       at 
> org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:156)
>       ... 8 more
> 2014-10-21 10:39:31,484 ERROR Unable to write to stream 
> //L-Computer1/test/logs/primary.log for appender primeCompressedDaily
> log4j2.xml entries is given below,
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- set status below to FATAL to suppress a bug in log4j2: "ERROR appender 
> Failover has no parameter that matches element Failovers" -->
> <!--  other working value for status is "warn" -  -->
> <Configuration status="warn" name="log4j2" packages="com.ims.log4j">
>       <Appenders>
>       
>               <Console name="stdout" target="SYSTEM_OUT" 
> ignoreExceptions="false">
>                       <PatternLayout pattern="%d{ABSOLUTE} %1p %X{userinfo} 
> %c{1}:%L - %m%n"/>
>               </Console>
>                               
>               <RollingFile name="compressedDaily" 
> fileName="c:/installed/Tomcat-7.0.12/logs/secondary.log"
>                       
> filePattern="c:/installed/Tomcat-7.0.12/logs/secondary.log.%d{yyyy-MM-dd}.gz" 
> ignoreExceptions="false">
>                       <PatternLayout>
>                               <Pattern>%d{ABSOLUTE} %1p %X{userinfo} %c{1}:%L 
> - %m%n</Pattern>
>                       </PatternLayout>
>                       <Policies>
>                               <TimeBasedTriggeringPolicy/>
>                               <SizeBasedTriggeringPolicy/>
>                       </Policies>
>               </RollingFile>
>               
>               <RollingFile name="primeCompressedDaily" 
> fileName="//L-Computer1/test/logs/primary.log"
>                       
> filePattern="//L-Computer1/test/logs/primary.log.%d{yyyy-MM-dd}.gz" 
> ignoreExceptions="false" >
>                       <PatternLayout>
>                               <Pattern>%d{ABSOLUTE} %1p %X{userinfo} %c{1}:%L 
> - %m%n</Pattern>
>                       </PatternLayout>
>                       <Policies>
>                               <TimeBasedTriggeringPolicy/>
>                               <SizeBasedTriggeringPolicy/>
>                       </Policies>
>               </RollingFile>
>               
>               <Failover name="FailoverAppender" 
> primary="primeCompressedDaily" retryInterval="61" ignoreExceptions="false"> 
>               <Failovers>
>                       <AppenderRef ref="compressedDaily" />
>               </Failovers>
>           </Failover>
>           
>           <Async name="asyncCompressed">
>               <AppenderRef ref="FailoverAppender" />
>           </Async>
>             <Async name="asyncStdout">
>               <AppenderRef ref="stdout" />
>           </Async>
>         
>       </Appenders>
>                       
>       <Loggers>
>       
>               <Root level="trace">
>                       <AppenderRef ref="asyncCompressed" level="trace"/>
>                       <AppenderRef ref="asyncStdout" level="trace"/>
>       </Root>
>       
>           <Logger name="com.ims" level="debug" includeLocation="true" 
> additivity="false">
>             <AppenderRef ref="asyncCompressed"/>
>           </Logger>
>           
>           <Logger name="org.apache.cxf.interceptor.LoggingInInterceptor" 
> level="info" includeLocation="true" additivity="false">
>             <AppenderRef ref="asyncCompressed"/>
>           </Logger>
>           
>           <Logger name="org.apache.cxf.interceptor.LoggingOutInterceptor" 
> level="info" includeLocation="true" additivity="false">
>             <AppenderRef ref="asyncCompressed"/>
>           </Logger>
>       
>               <Logger name="org.hibernate" level="error" 
> includeLocation="true" additivity="false">
>             <AppenderRef ref="asyncCompressed"/>
>           </Logger>
>       
>           <Logger name="test.escalation" level="debug" includeLocation="true" 
> additivity="false">
>             <AppenderRef ref="asyncCompressed"/>
>           </Logger>
>           
>           <Logger name="org.apache.cxf" level="info" includeLocation="true" 
> additivity="false">
>             <AppenderRef ref="asyncCompressed"/>
>           </Logger>           
>       
>       </Loggers>      
>       
> </Configuration>
> Junit method
> @Test
>       public void log4jTest() throws Exception {
>               System.out.println("log4j2 test");
>               Thread.sleep(30000);
>               log.error("debug-log4j2 test*1");
>               Thread.sleep(60000);
>               log.error("debug-log4j2 test*2");
>               Thread.sleep(30000);
>               System.out.println("debug-log4j2 test*3");
>               Thread.sleep(70000);
>               log.info("debug-log4j2 test*4");
>               Thread.sleep(30000);
>               log.debug("debug-log4j2 test*5");
>               Thread.sleep(30000);
>               log.debug("debug-log4j2 test*6");
>               Thread.sleep(30000);
>               log.debug("debug-log4j2 test*7");
>               Thread.sleep(30000);
>               log.debug("debug-log4j2 test*8");
>               Thread.sleep(290000);
>               log.debug("debug-log4j2 test*9");
>               Thread.sleep(30000);
>               log.debug("debug-log4j2 test*10");
>               System.out.println("debug-log4j2 test*6");
>       }
> PS Please forgive if I wasn't narrate the problem properly. any quick help in 
> this issue would be highly appreciated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to