/// <summary> /// Konstruktor : Name der Datei, Pfad der Datei, Zyklus des Ringspeichers /// </summary> public CTrace(string strFilename, string strFilepath, ZeitZyklen nZyklus) { m_delPrivateWriteText = new ExclusiveWriteDelegate(PrivateWriteText); m_blnTraceActive = true; m_blnWriteline = true; if (strFilepath.Length == 0) { // Default Log Verzeichnis setzen strFilepath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\"; } else if (!strFilepath.EndsWith(@"\")) { strFilepath += @"\"; } m_strFilename = strFilename; m_LogDir = new DirectoryInfo(strFilepath); /* if (!Security.CheckAccessRights(m_LogDir, * FileSystemRights.Write | * FileSystemRights.AppendData | * FileSystemRights.CreateFiles)) * { * HandleMissingDirectoryAccess(); * } * else { }*/ try { if (!m_LogDir.Exists) { m_LogDir.Create(); } } catch (Exception e) { Console.WriteLine("Faild to create Logdir {0}: {1}", m_LogDir, e.Message); } m_Zyklus = nZyklus; }
public void ExclusiveWrite(ExclusiveWriteDelegate del, object state) { if (m_blnTraceActive) { m_Locker.EnterWriteLock(); { try { CheckStream(); if (EnoughDiskSpace()) { m_blnNotifyedNotEnougDiskSpace = false; del.Invoke(m_Writer, state); m_Writer.Flush(); m_FileStream.Flush(); } else { if (!m_blnNotifyedNotEnougDiskSpace) { m_blnNotifyedNotEnougDiskSpace = true; DateTime date = DateTime.Now; string strTrace = string.Format("{0:dd.MM.yy HH:mm:ss}", date); strTrace += string.Format(".{0:000} Free diskspace under-run the minimum of {1} mb to trace. Tracing will be deaktivated until the free diskspace exceeds the {1} mb limit.", date.Millisecond, MinumDiskSpace); m_Writer.WriteLine(); m_Writer.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!"); m_Writer.WriteLine(strTrace); m_Writer.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!"); m_Writer.WriteLine(); m_Writer.Flush(); m_FileStream.Flush(); CloseStreams(); } else { //Already notifyed... } } if (!KeepFileOpen) { CloseStreams(); } else { } } catch (Exception ex) { Debug.WriteLine("Fehler beim Tracen: {0}", ex.ToString()); CloseStreams(); } } m_Locker.ExitWriteLock(); } else { try { if (m_TraceListner == null) { m_TraceListner = new TextWriterTraceListener(System.Console.Out); } if (!Debug.Listeners.Contains(m_TraceListner)) { Debug.Listeners.Add(m_TraceListner); } /* * if (m_blnWriteline) * Debug.WriteLine(strTrace); * else * Debug.Write(strTrace);*/ } catch { } } }
public void ExclusiveWrite(ExclusiveWriteDelegate del, object state) { if (m_blnTraceActive) { m_Locker.EnterWriteLock(); { try { CheckStream(); if (EnoughDiskSpace()) { m_blnNotifyedNotEnougDiskSpace = false; del.Invoke(m_Writer, state); m_Writer.Flush(); m_FileStream.Flush(); } else { if (!m_blnNotifyedNotEnougDiskSpace) { m_blnNotifyedNotEnougDiskSpace = true; DateTime date = DateTime.Now; string strTrace = string.Format("{0:dd.MM.yy HH:mm:ss}", date); strTrace += string.Format(".{0:000} Free diskspace under-run the minimum of {1} mb to trace. Tracing will be deaktivated until the free diskspace exceeds the {1} mb limit.", date.Millisecond, MinumDiskSpace); m_Writer.WriteLine(); m_Writer.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!"); m_Writer.WriteLine(strTrace); m_Writer.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!"); m_Writer.WriteLine(); m_Writer.Flush(); m_FileStream.Flush(); CloseStreams(); } else { //Already notifyed... } } if (!KeepFileOpen) { CloseStreams(); } else { } } catch (Exception ex) { Debug.WriteLine("Fehler beim Tracen: {0}", ex.ToString()); CloseStreams(); } } m_Locker.ExitWriteLock(); } else { try { if (m_TraceListner == null) m_TraceListner = new TextWriterTraceListener(System.Console.Out); if (!Debug.Listeners.Contains(m_TraceListner)) Debug.Listeners.Add(m_TraceListner); /* if (m_blnWriteline) Debug.WriteLine(strTrace); else Debug.Write(strTrace);*/ } catch { } } }
/// <summary> /// Konstruktor : Name der Datei, Pfad der Datei, Zyklus des Ringspeichers /// </summary> public CTrace(string strFilename, string strFilepath, ZeitZyklen nZyklus) { m_delPrivateWriteText = new ExclusiveWriteDelegate(PrivateWriteText); m_blnTraceActive = true; m_blnWriteline = true; if (strFilepath.Length == 0) { // Default Log Verzeichnis setzen strFilepath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\"; } else if (!strFilepath.EndsWith(@"\")) strFilepath += @"\"; m_strFilename = strFilename; m_LogDir = new DirectoryInfo(strFilepath); /* if (!Security.CheckAccessRights(m_LogDir, FileSystemRights.Write | FileSystemRights.AppendData | FileSystemRights.CreateFiles)) { HandleMissingDirectoryAccess(); } else { }*/ try { if (!m_LogDir.Exists) m_LogDir.Create(); } catch (Exception e) { Console.WriteLine("Faild to create Logdir {0}: {1}", m_LogDir, e.Message); } m_Zyklus = nZyklus; }