[ https://issues.apache.org/jira/browse/LOG4J2-1396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15303776#comment-15303776 ]
Greg Thomas commented on LOG4J2-1396: ------------------------------------- I don't think this is a Log4j issue; cygwin tail has a lock on azimuth-comp-algo.log, so log4j can't write to it. There's nothing log4j can do about that on a file system that has mandatory locks (i.e Windows), as opposed to one with advisory locks (Unix-like) , > Error restarting while tailing output file (using RandomAccessFileAppender) > --------------------------------------------------------------------------- > > Key: LOG4J2-1396 > URL: https://issues.apache.org/jira/browse/LOG4J2-1396 > Project: Log4j 2 > Issue Type: Improvement > Components: Appenders > Affects Versions: 2.5 > Environment: Windows 7 SP1, Cygwin > Reporter: Remko Popma > > Steps to reproduce: > # configure logging to use RandomAccessFile appender > # start application > # tail the log with cygwin tail > # stop the application (don't stop the tail process) > # start the application > # we see the error below. TBD I don't remember if this stoped the application > from starting, or just stopped further log output. > {noformat} > SLF4J: Class path contains multiple SLF4J bindings. > SLF4J: Found binding in > [jar:file:/C:/Users/1325671/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.6-SNAPSHOT/140deb9e4285c191ce93eaa764bc8c86424bf709/log4j-slf4j-impl-2.6-SNAPSHOT.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: Found binding in > [jar:file:/C:/Users/1325671/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-nop/1.7.12/8052427115f80679a17bd2af659c760df39829bd/slf4j-nop-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: Found binding in > [jar:file:/C:/Users/1325671/.gradle/caches/modules-2/files-2.1/com.thomsonreuters/ema/preview-20160331/8881e8a4e6aba75725c92f84b5cc0cde4cbcf63a/ema-preview-20160331.jar!/org/slf4j/impl/StaticLoggerBinder.class] > SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an > explanation. > SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] > 2016-05-13 10:33:14,111 main ERROR RandomAccessFileManager > (build/logs/azimuth-comp-algo.log) java.io.FileNotFoundException: > build\logs\azimuth-comp-algo.log (Access is denied) > java.io.FileNotFoundException: build\logs\azimuth-comp-algo.log (Access is > denied) > at java.io.RandomAccessFile.open0(Native Method) > at java.io.RandomAccessFile.open(RandomAccessFile.java:316) > at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243) > at java.io.RandomAccessFile.<init>(RandomAccessFile.java:124) > at > org.apache.logging.log4j.core.appender.RandomAccessFileManager$RandomAccessFileManagerFactory.createManager(RandomAccessFileManager.java:194) > at > org.apache.logging.log4j.core.appender.RandomAccessFileManager$RandomAccessFileManagerFactory.createManager(RandomAccessFileManager.java:169) > at > org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:73) > at > org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:80) > at > org.apache.logging.log4j.core.appender.RandomAccessFileManager.getFileManager(RandomAccessFileManager.java:70) > at > org.apache.logging.log4j.core.appender.RandomAccessFileAppender.createAppender(RandomAccessFileAppender.java:166) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:132) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:898) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:838) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:830) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:459) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:199) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:211) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:491) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:561) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:577) > at > org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:212) > at > org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:75) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:148) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41) > at > org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:103) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:304) > at com.other.utils.SystemClock.<clinit>(SystemClock.java:19) > at > jp.co.company.test.azimuth.StreamTestBase.initClockStartTime(StreamTestBase.groovy:35) > at > jp.co.company.test.azimuth.StreamTestBase.initClockStartTime(StreamTestBase.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) > at > groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1464) > at > org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.callStatic(StaticMetaClassSite.java:65) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:198) > at > jp.co.company.azimuth.strategy.scheduling.VWAPTest.<clinit>(VWAPTest.groovy:31) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at > java.lang.reflect.Constructor.newInstance(Constructor.java:422) > at > org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > mockit.internal.util.MethodReflection.invoke(MethodReflection.java:96) > at > mockit.internal.BaseInvocation.doProceed(BaseInvocation.java:71) > at mockit.Invocation.proceed(Invocation.java:144) > at > mockit.integration.junit4.internal.BlockJUnit4ClassRunnerDecorator.createTest(BlockJUnit4ClassRunnerDecorator.java:63) > at > org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java) > at > org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) > at > com.intellij.junit4.JUnit4TestRunnerUtil$IgnoreIgnoredTestJUnit4ClassRunner.runChild(JUnit4TestRunnerUtil.java:349) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runner.JUnitCore.run(JUnitCore.java:137) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) > 2016-05-13 10:33:14,124 main ERROR Unable to invoke factory method in class > class org.apache.logging.log4j.core.appender.RandomAccessFileAppender for > element RandomAccessFile. java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:132) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:898) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:838) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:830) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:459) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:199) > at > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:211) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:491) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:561) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:577) > at > org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:212) > at > org.apache.logging.log4j.core.async.AsyncLoggerContext.start(AsyncLoggerContext.java:75) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:148) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41) > at > org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:103) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) > at > org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) > at > org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284) > at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:304) > at com.other.utils.SystemClock.<clinit>(SystemClock.java:19) > at > jp.co.company.test.azimuth.StreamTestBase.initClockStartTime(StreamTestBase.groovy:35) > at > jp.co.company.test.azimuth.StreamTestBase.initClockStartTime(StreamTestBase.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) > at > groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1464) > at > org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.callStatic(StaticMetaClassSite.java:65) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:198) > at > jp.co.company.azimuth.strategy.scheduling.VWAPTest.<clinit>(VWAPTest.groovy:31) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at > java.lang.reflect.Constructor.newInstance(Constructor.java:422) > at > org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > mockit.internal.util.MethodReflection.invoke(MethodReflection.java:96) > at > mockit.internal.BaseInvocation.doProceed(BaseInvocation.java:71) > at mockit.Invocation.proceed(Invocation.java:144) > at > mockit.integration.junit4.internal.BlockJUnit4ClassRunnerDecorator.createTest(BlockJUnit4ClassRunnerDecorator.java:63) > at > org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java) > at > org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) > at > com.intellij.junit4.JUnit4TestRunnerUtil$IgnoreIgnoredTestJUnit4ClassRunner.runChild(JUnit4TestRunnerUtil.java:349) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runner.JUnitCore.run(JUnitCore.java:137) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) > Caused by: java.lang.IllegalStateException: ManagerFactory > [org.apache.logging.log4j.core.appender.RandomAccessFileManager$RandomAccessFileManagerFactory@3d2ee678] > unable to create manager for [build/logs/azimuth-comp-algo.log] with data > [org.apache.logging.log4j.core.appender.RandomAccessFileManager$FactoryData@6179e425] > at > org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:75) > at > org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:80) > at > org.apache.logging.log4j.core.appender.RandomAccessFileManager.getFileManager(RandomAccessFileManager.java:70) > at > org.apache.logging.log4j.core.appender.RandomAccessFileAppender.createAppender(RandomAccessFileAppender.java:166) > ... 69 more > 2016-05-13 10:33:14,131 main ERROR Null object returned for RandomAccessFile > in Appenders. > 2016-05-13 10:33:14,143 main ERROR Unable to locate appender "AZLOG" for > logger config "root" > {noformat} -- 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