示例#1
0
        /// <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;
        }
示例#2
0
        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
                {
                }
            }
        }
示例#3
0
        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
                {
                }

            }
        }
示例#4
0
		/// <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;
            
        }