[
https://issues.apache.org/jira/browse/LOG4NET-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Bodewig updated LOG4NET-103:
-----------------------------------
Fix Version/s: 1.2 Maintenance Release
> RollingFileAppenders that log to a network share from a web application fail
> to resume logging in the event the network share is
> disconnected/reconnected/failsover
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: LOG4NET-103
> URL: https://issues.apache.org/jira/browse/LOG4NET-103
> Project: Log4net
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 1.2.9, 1.2.10
> Environment: Windows 2003, ASP.NET, C#
> Reporter: Kenneth Oberleitner
> Fix For: 1.2 Maintenance Release
>
>
> We have seen an issue when logging from our web applications to a clustered
> SAN which fails over to a backup. I have recreated the scenario locally with
> two machines and writing a log file to a network share.
> 1) Enabled internal logging in log4net to a local file on MACHINE-C
> 2) Set up a share on MACHINE-B, and started a web application logging to that
> share from MACHINE-C; logs appeared on the share as expected
> 3) Disabled the share on MACHINE-B, refreshed the web application, the
> following error was reported in log4net's internal debugging
> log4net:ERROR [RollingFileAppender] Failed in DoAppend
> System.IO.IOException: The handle is invalid.
> at System.IO.__Error.WinIOError(Int32 errorCode, String str)
> at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32
> count)
> at System.IO.FileStream.FlushWrite()
> at System.IO.FileStream.Flush()
> at log4net.Appender.LockingStream.Flush()
> at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
> at System.IO.StreamWriter.Flush()
> at log4net.Util.TextWriterAdapter.Flush()
> at log4net.Appender.FileAppender.Append(LoggingEvent loggingEvent)
> at log4net.Appender.RollingFileAppender.Append(LoggingEvent loggingEvent)
> at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)
> 4) Re-enabled the share on MACHINE-B, refreshed the web application; no
> logging appeared in the shared log file, and the following error appeared in
> log4nets internal debugging
> log4net:ERROR [RollingFileAppender] Failed in DoAppend
> System.ObjectDisposedException: Cannot access a closed file.
> at System.IO.__Error.FileNotOpen()
> at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
> at log4net.Appender.LockingStream.Write(Byte[] buffer, Int32 offset, Int32
> count)
> at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
> at System.IO.StreamWriter.Flush()
> at log4net.Util.TextWriterAdapter.Flush()
> at log4net.Appender.FileAppender.Append(LoggingEvent loggingEvent)
> at log4net.Appender.RollingFileAppender.Append(LoggingEvent loggingEvent)
> at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)
> 5) Touched web.config, refreshed the web application; no logging appeared in
> the shared log file, and the following errors appeared in log4net's internal
> debugging
> log4net: Hierarchy: Shutdown called on Hierarchy [log4net-default-repository]
> log4net:ERROR [RollingFileAppender] Could not close writer
> [log4net.Util.CountingQuietTextWriter]
> System.ObjectDisposedException: Cannot access a closed file.
> at System.IO.__Error.FileNotOpen()
> at System.IO.FileStream.Flush()
> at log4net.Appender.LockingStream.Flush()
> at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
> at System.IO.StreamWriter.Dispose(Boolean disposing)
> at System.IO.StreamWriter.Close()
> at log4net.Util.TextWriterAdapter.Close()
> at log4net.Util.QuietTextWriter.Close()
> at log4net.Appender.TextWriterAppender.CloseWriter()
> ...
> log4net:ERROR [RollingFileAppender] Unable to acquire lock on file
> \\MACHINE-B\Log\log-file.txt. The process cannot access the file
> "\\MACHINE-B\Log\log-file.txt" because it is being used by another process.
> log4net:ERROR [RollingFileAppender]
> OpenFile(\\MACHINE-B\Log\log-file.txt,True) call failed.
> LockStateException: The file is not currently locked
> at log4net.Appender.LockingStream.AssertLocked()
> at log4net.Appender.LockingStream.get_CanWrite()
> at System.IO.StreamWriter..ctor(Stream stream, Encoding encoding, Int32
> bufferSize)
> at System.IO.StreamWriter..ctor(Stream stream, Encoding encoding)
> at log4net.Appender.FileAppender.OpenFile(String fileName, Boolean append)
> at log4net.Appender.RollingFileAppender.OpenFile(String fileName, Boolean
> append)
> at log4net.Appender.FileAppender.SafeOpenFile(String fileName, Boolean
> append)
> ...
> log4net:ERROR [RollingFileAppender] Unable to acquire lock on file
> \\MACHINE-B\Log\log-file.txt. The process cannot access the file
> "\\MACHINE-B\Log\log-file.txt" because it is being used by another process.
> log4net:ERROR [RollingFileAppender]
> OpenFile(\\MACHINE-B\Log\log-file.txt,True) call failed.
> LockStateException: The file is not currently locked
> at log4net.Appender.LockingStream.AssertLocked()
> at log4net.Appender.LockingStream.get_CanWrite()
> at System.IO.StreamWriter..ctor(Stream stream, Encoding encoding, Int32
> bufferSize)
> at System.IO.StreamWriter..ctor(Stream stream, Encoding encoding)
> at log4net.Appender.FileAppender.OpenFile(String fileName, Boolean append)
> at log4net.Appender.RollingFileAppender.OpenFile(String fileName, Boolean
> append)
> at log4net.Appender.FileAppender.SafeOpenFile(String fileName, Boolean
> append)
> log4net:ERROR [RollingFileAppender] No output stream or file set for the
> appender named [AppRollingFileAppender].
> 6) Performed an iisreset; logging then appeared in the shared log and no
> errors in the log4net internal debugging
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira