You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by Alain ABENHAIM <al...@free.fr> on 2005/07/24 00:47:57 UTC

RollingFileAppender does not roll

Hi,

I have a problem with the RollingFileAppender (Date type): the rolled files
are not created.

* Application Type : ASP.NET

* Logging directory : <Application Root Directory>\Log\

* My config file (interesting section) :
	<appender name="FileCompleteLog"
type="log4net.Appender.RollingFileAppender">
		<file value="Log\ProsperApp.log" />
		<appendToFile value="true" />
		<rollingStyle value="Date" />
		<datePattern value="yyyyMMdd-HHmm" />
		<maxSizeRollBackups value="30" />
		<staticLogFileName value="true" />
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%d{dd-MM-yyyy
HH:mm:ss,fff}	[%-5t]	%-5p	%-25logger	[%-17.17M]	*%-8u*
%m%n"/>
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="DEBUG" />
			<levelMax value="FATAL" />
		</filter>
	</appender>

* Here is the Log4Net internal log :
	- When the application starts (extracts) :
...
log4net: RollingFileAppender: curSizeRollBackups starts at [0]
log4net: RollingFileAppender: [20050802-1412] vs. [20050802-1415]
log4net: RollingFileAppender: Initial roll over to
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log20050802-1412]
log4net:WARN RollingFileAppender: Cannot RollFile [Log\ProsperApp.log] ->
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log20050802-1412]. Source does
not exist
log4net: RollingFileAppender: curSizeRollBackups after rollOver at [0]
log4net: FileAppender: Opening file for writing
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log] append [True] ...

	- When the date have changed and the log needs to be rolled :
log4net: RollingFileAppender: Moving
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log] ->
[Log\ProsperApp.log20050802-1415] log4net:ERROR [RollingFileAppender]
Exception while rolling file
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log] ->
[Log\ProsperApp.log20050802-1415]
System.IO.DirectoryNotFoundException: Impossible de trouver une partie du
chemin d'accès "Log\ProsperApp.log20050802-1415".
   at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.File.Move(String sourceFileName, String destFileName)
   at log4net.Appender.RollingFileAppender.RollFile(String fromFile, String
toFile) in
c:\Work\cvs_root\apache\r1.2.9\logging-log4net\build\package\log4net-1.2.9-b
eta\src\Appender\RollingFileAppender.cs:line 1062 log4net:ERROR
RollingFileAppender: INTERNAL ERROR. Append is False but OutputFile
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log] already exists.
log4net: FileAppender: Opening file for writing
[d:\inetpub\wwwroot\ProsperApp\Log\ProsperApp.log] append [False]

* Isn't there a bug in the RollingFileAppender.cs, RollFile method? The
following line
	System.IO.File.Move(fromFile, toFile);
Should be replaced by :
	System.IO.File.Move(fromFile, ConvertToFullPath(toFile));

A way I found for resolving the problem without modifying the code is
putting the full path in the config file :
	<file value="D:\Inetpub\wwwroot\ProsperApp\Log\ProsperApp.log" />

Thanks up front.

AlainA