--- dao/DaoMqPump2/DaoCommon/Logfile.cs 2014/05/19 12:16:44 2176 +++ dao/DaoMqPump2/DaoCommon/Logfile.cs 2014/05/19 19:51:47 2177 @@ -17,21 +17,23 @@ public class Logfile : IDisposable { + // Flag: Has Dispose already been called? + bool disposed = false; //IDisposable + + private LogfileType type; private string name; private String logDirectory; private LinkedList logEntries = new LinkedList(); + StreamWriter realLogFile = null; - public Logfile(string logname, string logDirectory) + public Logfile(LogfileType type, string logname, string logDirectory) { + this.type = type; this.logDirectory = logDirectory; this.name = logname; } - public void Dispose()// adasd - { - } - public static string getNowString() { DateTime now = DateTime.Now; @@ -40,7 +42,7 @@ } - public string getLogFilename(LogfileType type) + public string getLogFilename() { return getLogFilename(type, logDirectory, name); } @@ -65,6 +67,7 @@ case LogfileType.LogTransactions: filename += "transactionlog_"; break; + case LogfileType.LogDiscarded: filename += "discardedlog_"; break; @@ -76,6 +79,24 @@ return filename; } + private void checkAndOpenfile() + { + if (realLogFile != null) + return; + + string filename = getLogFilename(); + + realLogFile = new StreamWriter(filename, true); + } + + public void writeLogEntry(string msg) + { + checkAndOpenfile(); + + realLogFile.WriteLine(getNowString() + " " + msg); + realLogFile.Flush(); + } + public void addSingleLogEntry(string msg) { @@ -90,11 +111,13 @@ } } - string filename = getLogFilename(LogfileType.LogEvents); + string filename = getLogFilename(); using (StreamWriter eventlog = new StreamWriter(filename, true)) { eventlog.WriteLine(msg); } + + Console.WriteLine(msg); } public string[] getLog() @@ -110,6 +133,31 @@ } } + public void Dispose() + { + if (disposed) + return; + + try + { + if (realLogFile != null) + { + realLogFile.Close(); + realLogFile.Dispose(); + } + } + catch (Exception e) + { + Console.WriteLine("Error disposing logfile : ", e.Message); + } + + + // Free any unmanaged objects here. + // + disposed = true; + } + + } }