Hi,

 

After doing a build of log4net from the CVS source we had difficulty with the RollingFileAppender failing to log after a rollover.  The problem was occurring in a IIS-hosted web app, but we hadn’t had any trouble with the 1.2 release of log4net.

 

After turning on internal debugging, I tracked the problem down to relative file names.  At application startup, the following was put in the internal log:

 

log4net: XmlConfigurator: Loading Appender [MainRollingFileAppender] type: [log4net.Appender.RollingFileAppender]

log4net: XmlConfigurator: Setting Property [File] to String value [.\\ServicesLog.txt]

log4net: XmlConfigurator: Setting Property [AppendToFile] to Boolean value [True]

log4net: XmlConfigurator: Setting Property [RollingStyle] to RollingMode value [Size]

log4net: XmlConfigurator: Setting Property [MaxSizeRollBackups] to Int32 value [5]

log4net: XmlConfigurator: Setting Property [MaximumFileSize] to String value [2MB]

log4net: RollingFileAppender: Searched for existing files in [c:\windows\system32\inetsrv]

log4net: RollingFileAppender: curSizeRollBackups starts at [0]

log4net: FileAppender: Opening file for writing [C:\Inetpub\wwwroot\Christmas.ServiceHost_andrewha\ServicesLog.txt] append [True]

 

When it came to rollover, the following was logged:

 

log4net: RollingFileAppender: rolling over count [2098121]

log4net: RollingFileAppender: maxSizeRollBackups [5]

log4net: RollingFileAppender: curSizeRollBackups [0]

log4net: RollingFileAppender: countDirection [-1]

log4net: RollingFileAppender: Deleted file [C:\Inetpub\wwwroot\Christmas.ServiceHost_andrewha\ServicesLog.txt.1]

log4net: RollingFileAppender: Moving [C:\Inetpub\wwwroot\Christmas.ServiceHost_andrewha\ServicesLog.txt] -> [C:\Inetpub\wwwroot\Christmas.ServiceHost_andrewha\ServicesLog.txt.1]

log4net: FileAppender: Opening file for writing [.\\ServicesLog.txt] append [False]

log4net:ERROR [RollingFileAppender] OpenFile(.\\ServicesLog.txt,False) call failed.

System.UnauthorizedAccessException: Access to the path "c:\windows\system32\inetsrv\ServicesLog.txt" is denied.

   at System.IO.__Error.WinIOError(Int32 errorCode, String str)

   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy)

   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

   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] Failed in DoAppend

 

Changing the line:

 

SafeOpenFile(m_baseFileName, false);

 

to:

 

SafeOpenFile(ConvertToFullPath(m_baseFileName), false);

 

in the RollingFileAppender RollOverSize() and RollOverTime() methods seems to have fixed it.  I don’t have access to CVS here at work, but if someone else is having a similar problem this may be of help.

 

Warrick Flower

Technical Consultant
DATACOM SYSTEMS LTD, Auckland
( Work: +64 9 366 1150 extn 8245 (Mob: +64 21 171 5764

* [EMAIL PROTECTED]

 

Reply via email to