Hi Ron, Thank you for your reply. I am not sure how to proceed with your suggestion. Are you suggesting to add a method in LockingModelBase and recombile log4net or extend LockingModelBase and add this method in that subclass?
Thanks, Ryan Ron Grabowski wrote: > > I meant to suggest adding CreateFileStream to LockingModelBase. > > ----- Original Message ---- > From: Ron Grabowski <[EMAIL PROTECTED]> > To: Log4NET User <[email protected]> > Sent: Thursday, April 5, 2007 11:21:40 PM > Subject: Re: FileAppender ExclusiveLock workaround (Not MinimalLock) > > Perhaps the FileAppender can be enhanced to allow the underlying > FileStream to be opened by an inheritor: > > // example code only...will not compile because CreateFileStream does not > exist in FileAppender > public class CustomFileStreamFileAppender : FileAppender > { > // called from OpenFile method > public override FileStream CreateFileStream(string fileName, FileMode > fileMode, FileAccess fileAccess, FileShare fileShare) > { > return new FileStream(fileName ,FileMode.Append, FileAccess.Write, > FileShare.ReadWrite); > } > } > > ----- Original Message ---- > From: Frogg <[EMAIL PROTECTED]> > To: [email protected] > Sent: Thursday, April 5, 2007 9:25:01 AM > Subject: Re: FileAppender ExclusiveLock workaround (Not MinimalLock) > > > Thanks for the suggestion, I tried to add this to my code however it > doesnt > seem to work, I may be missing some initialization command somewhere.... > It > will create the log file but it will not input any text into it. > > > > Ron Grabowski wrote: >> >> Have you tried something like this: >> >> // untested >> FileAppender fileAppender = new FileAppender(); >> fileAppender.Writer = >> new QuietTextWriter( >> new StreamWriter( >> new >> FileStream("logs.txt",FileMode.Append,FileAccess.Write,FileShare.ReadWrite)), >> new OnlyOnceErrorHandler()); >> >> ----- Original Message ---- >> From: Frogg <[EMAIL PROTECTED]> >> To: [email protected] >> Sent: Wednesday, April 4, 2007 4:31:05 PM >> Subject: FileAppender ExclusiveLock workaround (Not MinimalLock) >> >> >> Hello, >> >> We used to use a really old version of log4net (1.2.03) but have since >> upgraded to 1.2.10. With the old log4net we created a custom >> FileAppender >> so that different application domains could log to the same file (this >> was >> before the days of MinimalLock). Basically, what we did was to override >> the >> OpenFile method to open the file stream in share mode, thus allowing many >> processes to write to the file at the same time. >> >> This is how the code looked that worked with the old log4net dll: >> >> ==================Code c#========================= >> protected override void OpenFile(string rawFileName, bool append) >> { >> lock(this) >> { >> // Release any current configuration and prepare for new. >> Reset(); >> >> // Make THIS debuggable at least. >> LogLog.Debug( >> string.Format( >> "CustomFileAppender: Opening file for SHARED writing[{0}] >> append [{1}] >> ",fileName, append ) ); >> >> // Create the directory if needed >> Directory.CreateDirectory((new FileInfo(fileName)).DirectoryName); >> >> // Open the file to allow reading and writing WHILE OPEN >> FileStream fs = new >> FileStream(fileName,FileMode.Append,FileAccess.Write,FileShare.ReadWrite); >> >> // and store for use in the base class >> SetQWForFiles(new StreamWriter(fs)); >> >> // save the name and append settings >> base.File = fileName; >> base.AppendToFile = append; >> >> // and write out any header details >> WriteHeader(); >> } >> ==============End Code====================== >> >> When we upgraded to the 1.2.10 this code no longer worked. I tried using >> MinimalLock instead of the above code but that has the unfortunate side >> effects of being very slow(Lock, Unlock, Lock, Unlock, etc) and allowing >> some other process to maintain an exclusive lock on the file (no matter >> how >> short of time), someone other than the logger (for example, someone is >> viewing the log file, the application is not able to log events because >> that >> person viewing got a writer lock). >> >> I would like to be able to redo the code above to work with 1.2.10 but my >> attempts thus far have been unsuccessfull, if anyone has any ideas that >> may >> put me on the right track I would be greatly appreciative. >> >> Thanks, >> -- >> View this message in context: >> http://www.nabble.com/FileAppender-ExclusiveLock-workaround-%28Not-MinimalLock%29-tf3528119.html#a9845029 >> Sent from the Log4net - Users mailing list archive at Nabble.com. >> >> >> >> >> >> > > -- > View this message in context: > http://www.nabble.com/FileAppender-ExclusiveLock-workaround-%28Not-MinimalLock%29-tf3528119.html#a9855384 > Sent from the Log4net - Users mailing list archive at Nabble.com. > > > > > > > > > -- View this message in context: http://www.nabble.com/FileAppender-ExclusiveLock-workaround-%28Not-MinimalLock%29-tf3528119.html#a10021996 Sent from the Log4net - Users mailing list archive at Nabble.com.
