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