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 Ron Grabowski <ro...@yahoo.com> on 2005/02/11 03:57:33 UTC

FileAppender's OpenFile() has mandatory call to Directory.CreateDirectory(...)

When I uploaded my project to my web hosting company I was able to
capture log4net's internal debug messages and output them to a file
(which tells me the folder where the log files are being written to
exists and is writable). The following exception appeared in the log
file:

OpenFile(d:\hosting\xyz\Logs\log.txt,True) call failed.
System.IO.DirectoryNotFoundException: Could not find a part of the path
"d:\".
   at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.Directory.InternalCreateDirectory(String fullPath,
String path)
   at System.IO.Directory.CreateDirectory(String path)
   at log4net.Appender.FileAppender.OpenFile(String fileName, Boolean
append)

Visual Studio told me this about the exception:

"
System.IO.DirectoryNotFoundException: The specified path is invalid,
such as being on an unmapped drive.
"

It does exist becuase I'm logging log4net's internal messages to a file
in the same folder:

 d:\hosting\xyz\Logs\log4net.txt

I use the following code to create that file:

string physicalPathLogFile = 
	Path.Combine(
		System.Web.HttpRuntime.AppDomainAppPath, 
		LOG4NET_LOG_FILE);

FileStream fileStream = new FileStream(
	physicalPathLogFile, 
	FileMode.Create, 
	FileAccess.Write );

If I comment out this line in FileAppender (and the lines that
reference LogLog, m_fileName, and m_appendToFile):

 // Ensure that the directory structure exists
 Directory.CreateDirectory((new FileInfo(fileName)).DirectoryName);

Everything works ok. Is there a way to tell the FileAppender that I
_don't_ want to perform the directory structure check?

- Ron