Я делаю журнал для своей программы, используя StreamWriter для записи в файл. У меня есть код, который выглядит так, как будто он работает, но он только делает часть того, что ему нужно.Почему мой StreamWriter не записывается в файл?
Я создал простой класс Log (код ниже).
public class Log
{
string path;
StreamWriter fs;
public Log(string fullPathToLogFile)
{
path = fullPathToLogFile;
fs = new StreamWriter(path);
writeLog("Starting log");
}
public void writeLog(string s)
{
fs.WriteLine(DateTime.Now.ToString("dd-MM-yyyy H:mm:ss ") + s);
}
public void closeLog()
{
writeLog("Closing log");
fs.WriteLine(); //add a blank line at the end
fs.Close();
}
}
Я сделал простую программу испытаний, которая отлично работает. Он выполняет следующие три строки:
Log l = new Log(@"C:\Users\SADunkerton\Desktop\l.txt");
l.writeLog("testing log");
l.closeLog();
Но в моей гораздо более крупной программе, где я на самом деле хочу использовать класс Log, все это я получаю пустой файл --no текст внутри. Его код выглядит так:
Log log = new Log(folderPDFs + @"\Log.txt"); //folderPDFs is a parameter of this method--it is a string that is a complete path to a destination folder.
log.writeLog("Beginning conversions");
//do some stuff, including write to the log
log.writeLog("Finished converting. Success = " + success);
Может ли кто-нибудь сказать мне, почему версия программы этого кода не работает?
ваш последний пример не 'closeLog' .. – Sayse
Вы думали об использовании что-то надежное и широко используется как Log4Net а не изобретать колесо. –
попробуйте включить AutoFlush, как это. fs = новый StreamWriter (путь) {AutoFlush = true}; –