Короче говоря, да.
Защищенные членские переменные предоставляют доступ к переменной от любых подклассов, а также любых классов в том же пакете. Это может быть очень полезно, специально для данных только для чтения. Я не полагаю, что они когда-либо необходимы однако, потому что любое использование защищенной членской переменной может копироваться с помощью переменной члена парламента, не занимающего официального поста и нескольких методов get и методов set.
Не совсем понятно, как вы пытаетесь использовать переменные 'path' и 'Errorlog'. Похоже, вы пытаетесь создать файл, используя путь к каталогу.
Вам необходимо убедиться, что базовый путь для вашего файла журнала существует, прежде чем создавать файл. Это близко к тому, что вы ищете?
Directory.CreateDirectory(path);
String logfile = Path.Combine(path, Errorlog);
StreamWriter sw = new StreamWriter(logfile, true);
Построить путь к файлу:
string Errorlog=System.Configuration.ConfigurationManager.AppSettings["Errorlog"];
string path = System.AppDomain.CurrentDomain.BaseDirectory + Errorlog;
.......
.......
StreamWriter sw = (!File.Exists(path)) ?
File.CreateText(path) : File.AppendText(path);
sw.WriteLine(sBuilder.ToString());
Исходя из моего опыта работы с mod_wsgi в Apache, маловероятно, что они вызывают кеширование. Вот пара вещей, которые стоит попробовать:
Вы можете использовать filemon ( http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx ), чтобы проверить, что на самом деле происходит в файле. system.
Таким образом, вы можете увидеть, когда ваша программа пытается получить дескрипторы файловой системы и какие файлы и каталоги требуются вашей программе.