You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Greg Thomas (JIRA)" <ji...@apache.org> on 2016/05/27 08:57:12 UTC

[jira] [Commented] (LOG4J2-1396) Error restarting while tailing output file (using RandomAccessFileAppender)

    [ 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-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org