Esempio n. 1
0
        // Gets the name of the closest "parent" TraceRoute that has listeners, or null otherwise.
        private static TraceSource GetTraceSourceWithListeners(string name, SourceLevels sourceLevels)
        {
            string[] parts = name.Split(new char[] { '.' }, StringSplitOptions.None);

            List <string> namesToTest = new List <string>();
            StringBuilder sb          = new StringBuilder();

            foreach (var part in parts)
            {
                if (sb.Length > 0)
                {
                    sb.Append(".");
                }
                sb.Append(part);

                string partialName = sb.ToString();
                namesToTest.Add(partialName);
            }

            namesToTest.Reverse();
            foreach (var testName in namesToTest)
            {
                TraceSource ts = new TraceSource(testName);
                //bug in unity .NET 35 subset version.
                //constructor defaults the source level to always off.
                ts.Switch.Level = sourceLevels;
                ts.Listeners.AddRange(AWSConfigs.TraceListeners(testName));

                // no listeners? skip
                if (ts.Listeners == null || ts.Listeners.Count == 0)
                {
                    ts.Close();
                    continue;
                }
                // more than one listener? use this TraceSource
                if (ts.Listeners.Count > 1)
                {
                    return(ts);
                }
                TraceListener listener = ts.Listeners[0];
                // single listener isn't DefaultTraceListener? use this TraceRoute
                if (!(listener is DefaultTraceListener))
                {
                    return(ts);
                }
                // single listener is DefaultTraceListener but isn't named Default? use this TraceRoute
                if (!string.Equals(listener.Name, "Default", StringComparison.Ordinal))
                {
                    return(ts);
                }

                // not the TraceSource we're looking for, close it
                ts.Close();
            }

            // nothing found? no listeners are configured for any of the names, even the original,
            // so return null to signify failure
            return(null);
        }
Esempio n. 2
0
        static void TraceSourceDemo1()
        {
            trace.TraceInformation("Info message");

            trace.TraceEvent(TraceEventType.Error, 3, "Error message");
            trace.TraceData(TraceEventType.Information, 2, "data1", 4, 5);
            trace.Flush();
            trace.Close();
        }
Esempio n. 3
0
 public static void StartTraces()
 {
     try
     {
         mySource.TraceMessage(TraceEventType.Information, 57, "Arrancando el servicio de gestión documental");
         mySource?.Close();
     }
     catch { }
 }
        /// <summary>
        /// Gets the closest "parent" TraceRoute that has listeners, or null otherwise
        /// </summary>
        /// <param name="name"></param>
        /// <param name="sourceLevels"></param>
        /// <returns></returns>
        private static TraceSource GetTraceSourceWithListenersSyncLock(string name, SourceLevels sourceLevels)
        {
            string[]      splitters     = name.Split(new char[] { '.' }, StringSplitOptions.None);
            List <string> nameSplitList = new List <string>();
            StringBuilder builder       = new StringBuilder();

            foreach (string split in splitters)
            {
                if (builder.Length > 0)
                {
                    builder.Append(".");
                }

                builder.Append(split);

                string partialName = builder.ToString();
                nameSplitList.Add(partialName);
            }

            nameSplitList.Reverse();

            foreach (string nameSplit in nameSplitList)
            {
                TraceSource sourceTrace = null;
                sourceTrace = new TraceSource(nameSplit, sourceLevels);

                if (sourceTrace.Listeners == null || sourceTrace.Listeners.Count == 0)
                {
                    sourceTrace.Close();
                    continue;
                }

                if (sourceTrace.Listeners.Count > 1)
                {
                    return(sourceTrace);
                }
                TraceListener listenerTrace = sourceTrace.Listeners[0];

                if (!(listenerTrace is DefaultTraceListener))
                {
                    return(sourceTrace);
                }

                if (!string.Equals(listenerTrace.Name, "Default", StringComparison.Ordinal))
                {
                    return(sourceTrace);
                }
                sourceTrace.Close();
            }

            return(null);
        }
Esempio n. 5
0
 public static void StartTraces(string idName)
 {
     try
     {
         if (mySource == null)
         {
             mySource = new TraceSource(idName);
         }
         TraceMessage(TraceEventType.Information, 57, "Arrancando app cliente de mus");
         mySource?.Close();
     }
     catch { }
 }
Esempio n. 6
0
        public void TraceEventMessageFormat()
        {
            var cut = new ObjectFileTraceListener
            {
                Name               = "object",
                Filename           = $"Trace-{GetMethodName()}.txt",
                TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId | TraceOptions.ThreadId,
            };

            var source = new TraceSource(nameof(ObjectFileTraceListenerTests), SourceLevels.All)
            {
                Listeners = { cut }
            };

            const int            id        = 42;
            const TraceEventType eventType = TraceEventType.Verbose;
            const string         format    = "some information is {0}";
            const int            number    = 859874;

            source.TraceEvent(eventType, id, format, number);

            source.Close();

            var expectedLines = GetPatterns(GetMethodName());
            var actualLines   = GetLines(cut);

            AssertLines(expectedLines, actualLines);
        }
Esempio n. 7
0
        private static void TraceEvent(TraceEventType type, string message)
        {
            if (TraceFilePath != null)
            {
                var level = new SourceSwitch(SourceName)
                {
                    Level = Level
                };
                var trace = new TraceSource(SourceName)
                {
                    Switch = level
                };

                trace.Listeners.Clear();

                using (var file = new TextWriterTraceListener(TraceFilePath))
                {
                    trace.Listeners.Add(file);
                    trace.TraceEvent(type, 0, $"{DateTime.Now:HH:mm:ss.fff} {message}");
                    file.Flush();
                }

                trace.Close();
            }
        }
Esempio n. 8
0
 static void Close()
 {
     if (IntelliSenseTraceSource != null)
     {
         IntelliSenseTraceSource.Close();
     }
 }
Esempio n. 9
0
    static void Main(string[] args)
    {
        // Issue an error and a warning message. Only the error message
        // should be logged.
        Activity1();

        // Save the original settings from the configuration file.
        EventTypeFilter configFilter =
            (EventTypeFilter)mySource.Listeners["console"].Filter;

        // Create a new event type filter that ensures
        // warning messages will be written.
        mySource.Listeners["console"].Filter =
            new EventTypeFilter(SourceLevels.Warning);

        // Allow the trace source to send messages to listeners
        // for all event types. This statement will override
        // any settings in the configuration file.
        // If you do not change the switch level, the event filter
        // changes have no effect.
        mySource.Switch.Level = SourceLevels.All;

        // Issue a warning and a critical message. Both should be logged.
        Activity2();

        // Restore the original filter settings.
        mySource.Listeners["console"].Filter = configFilter;
        Activity3();
        mySource.Close();
        return;
    }
        public bool CheckConnection()
        {
            try
            {
                UsersServices.Instance.CheckConnection();
                var    context  = OperationContext.Current;
                var    prop     = context.IncomingMessageProperties;
                var    endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                string ip       = endpoint.Address;
                int    port     = endpoint.Port;

                WriteToLog("Successfully connected to Data Base");
                WriteToLog("Ip Address: " + ip + " And Port: " + port.ToString());
                WriteToLog("Date Time: " + DateTime.Now.ToString());

                mySource.TraceEvent(TraceEventType.Information, 1, "Error message.");
                //  EventTypeFilter configFilter =(EventTypeFilter)mySource.Listeners["console"].Filter;
                //  mySource.Listeners["console"].Filter = new EventTypeFilter(SourceLevels.Warning);
                // mySource.Switch.Level = SourceLevels.All;
                mySource.Close();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
                //throw new Exception(ex.Message);
            }
        }
        public async Task TestTcpTraceListener()
        {
            var listener = new TcpListener(IPAddress.Loopback, 0);
            listener.Start();
            int port = ((IPEndPoint)listener.Server.LocalEndPoint).Port;


            var traceSource = new TraceSource("UnitTestLogger");
            traceSource.Listeners.Remove("Default");
            traceSource.Switch.Level = SourceLevels.All;
            traceSource.Listeners.Add(new TcpTraceListener(
                                            IPAddress.Loopback, port, 
                                            new ExponentialBackoffTcpReconnectionPolicy()));

            var listenerClient = await listener.AcceptTcpClientAsync();

            traceSource.TraceEvent(TraceEventType.Information, 100, "Boris");

            var receiverReader = new StreamReader(listenerClient.GetStream());
            var line = await receiverReader.ReadLineAsync();

            Assert.True(line.EndsWith("UnitTestLogger Information: 100 : Boris"));

            listenerClient.Close();
            listener.Stop();
            traceSource.Close();
        }
        public void Refresh_RemoveSource()
        {
            // Use a SourceSwitch that logs Error.
            CreateAndLoadConfigFile("testhost_RemoveSource_before.config");

            TraceSource mySourceToBeRemoved = new TraceSource("Refresh_RemoveSource", SourceLevels.Warning);

            Assert.Equal(SourceLevels.Warning, mySourceToBeRemoved.DefaultLevel);
            Assert.Equal(SourceLevels.Error, mySourceToBeRemoved.Switch.Level); // Config has Error.
            Assert.Equal("Error", mySourceToBeRemoved.Switch.Value);

            StringTraceListener listenerToBeRemoved = (StringTraceListener)mySourceToBeRemoved.Listeners["listener"];

            listenerToBeRemoved.Clear();
            mySourceToBeRemoved.TraceEvent(TraceEventType.Error, 1, "Error message.");
            Assert.Equal($"Refresh_RemoveSource Error: 1 : Error message.{Environment.NewLine}", listenerToBeRemoved.Output);

            // Change the switch to log All.
            listenerToBeRemoved.Clear();
            CreateAndLoadConfigFile("testhost_RemoveSource_after.config");
            Trace.Refresh();

            Assert.Equal(SourceLevels.Warning, mySourceToBeRemoved.DefaultLevel);
            Assert.Equal(SourceLevels.Warning, mySourceToBeRemoved.Switch.Level); // Changed to Warning since the switch was removed from the config.
            Assert.Equal("Error", mySourceToBeRemoved.Switch.Value);

            mySourceToBeRemoved.TraceEvent(TraceEventType.Error, 1, "Error message.");
            Assert.Equal(string.Empty, listenerToBeRemoved.Output);

            listenerToBeRemoved.Clear();
            mySourceToBeRemoved.Close();
        }
Esempio n. 13
0
        public static void RunDebugAndTrace()
        {
            TraceListener consoleListener = new ConsoleTraceListener();

            Trace.Listeners.Add(consoleListener);

            Trace.TraceInformation("info message");
            Trace.Indent();
            Trace.TraceWarning("Warning message");
            Trace.Unindent();
            Trace.TraceError("error message");

            //trace source will create events that can be used to trace program execution
            TraceSource trace = new TraceSource("Tracer", SourceLevels.All);

            //500 is a value that represents certain events (used only as developer reference 500 could be UI, 600 databases and so on)
            trace.TraceEvent(TraceEventType.Start, 500);
            trace.TraceEvent(TraceEventType.Warning, 501);
            trace.TraceEvent(TraceEventType.Verbose, 502, "at the end of the program");

            //Trace data method allos information to be added to an event in the form of a collection of object references
            trace.TraceData(TraceEventType.Information, 503, new object[] { "note 1", "Message 007" });
            trace.Flush();
            trace.Close();


            Console.ReadLine();
        }
Esempio n. 14
0
        public void TraceDataSingle()
        {
            var cut = new ObjectFileTraceListener
            {
                Name               = "object",
                Filename           = $"Trace-{GetMethodName()}.txt",
                TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId | TraceOptions.ThreadId,
            };

            var source = new TraceSource(nameof(ObjectFileTraceListenerTests), SourceLevels.All)
            {
                Listeners = { cut }
            };

            const int            id        = 42;
            const TraceEventType eventType = TraceEventType.Verbose;
            const string         message   = "some message";
            const int            number    = 787;

            var data = new Data {
                Text = message, Id = number
            };

            source.TraceData(eventType, id, data);

            source.Close();

            var expectedLines = GetPatterns(GetMethodName());
            var actualLines   = GetLines(cut);

            AssertLines(expectedLines, actualLines);
        }
        static void Main(string[] args)
        {
            string fileName   = "TraceOutput.xml";
            string event_name = "eventschema_listener";

            File.Delete(fileName);

            //specify the EventSchema trace listener
            using (var eventschema_listener = new EventSchemaTraceListener(fileName, event_name))
            {
                TraceSource ts = new TraceSource("TestSource");
#if NOCONFIGFILE
                //ts.Listeners.Add(new EventSchemaTraceListener(fileName, event_name, 65536, TraceLogRetentionOption.LimitedCircularFiles, 20480000, 2));
                ts.Listeners.Add(eventschema_listener);
                ts.Listeners[event_name].TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId | TraceOptions.Timestamp;
#endif
                ts.Switch.Level = SourceLevels.All;
                string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
                UnescapedXmlDiagnosticData unXData = new UnescapedXmlDiagnosticData(testString);
                ts.TraceData(TraceEventType.Error, 38, unXData);
                ts.TraceEvent(TraceEventType.Error, 38, testString);

                Trace.Listeners.Add(eventschema_listener);
                Trace.Write("test eventschema", "test");
                Trace.Flush();
                ts.Flush();
                ts.Close();
                DisplayProperties(ts, event_name);
                Process.Start("notepad++.exe", "TraceOutput.xml");

                Console.ReadLine();
            }
        }
Esempio n. 16
0
        public void TraceInformation()
        {
            var cut = new ObjectFileTraceListener
            {
                Name               = "object",
                Filename           = $"Trace-{GetMethodName()}.txt",
                TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId | TraceOptions.ThreadId,
            };

            var source = new TraceSource(nameof(ObjectFileTraceListenerTests), SourceLevels.All)
            {
                Listeners = { cut }
            };

            const string text = "some information";

            source.TraceInformation(text);

            source.Close();

            var expectedLines = GetPatterns(GetMethodName());
            var actualLines   = GetLines(cut);

            AssertLines(expectedLines, actualLines);
        }
Esempio n. 17
0
        /// Main program for Assimilation Project network discovery for Windows
        static void Main(string[] args)
        {
            mySource.Switch = new SourceSwitch("netconfig", "Error");
            mySource.Listeners.Remove("Default");
            EventLogTraceListener evl = new EventLogTraceListener("netconfig");

            //Off, Critical, Error,	Warning, Information, Verbose, ActivityTracing,	All
            evl.Filter = new EventTypeFilter(SourceLevels.All);

            mySource.Listeners.Add(evl);

            Trace.WriteLine("start netconfig");

            // build the json output string
            String jout = NetworkExplorer();

            // add the final brace
            jout += "}";

            // send to our stdout
            System.Console.WriteLine(jout);

            Trace.WriteLine("end   netconfig");
            mySource.Close();
        }
Esempio n. 18
0
 private static void Close()
 {
     if (s_traceSource != null)
     {
         s_traceSource.Close();
     }
 }
Esempio n. 19
0
        static void Main(string[] args)
        {
            traceSource.TraceInformation("Creating new person");

            var person = new Person
            {
                FirstName = "John",
                LastName  = "Doe"
            };

            traceSource.TraceInformation("Creating new employee");

            var employee = new Employee
            {
                Department = "IT",
                FirstName  = person.FirstName,
                LastName   = person.LastName,
                Manager    = new Person
                {
                    FirstName = "Jane",
                    LastName  = "Doe"
                }
            };

            person.IsValid();

            employee.IsDepartmentValid();

            traceSource.Flush();
            traceSource.Close();
        }
 private static void Close()
 {
     if (asmxTraceSource != null)
     {
         asmxTraceSource.Close();
     }
 }
Esempio n. 21
0
        static void VerifyErrorsAreRaised()
        {
            string           indexName     = "errorindex";
            string           tokenName     = "errortoken";
            double           testStartTime = SplunkCliWrapper.GetEpochTime();
            SplunkCliWrapper splunk        = new SplunkCliWrapper();
            string           token         = CreateIndexAndToken(splunk, tokenName, indexName);

            var trace = new TraceSource("HttpEventCollectorLogger");

            trace.Switch.Level = SourceLevels.All;

            var validMetaData   = new HttpEventCollectorEventInfo.Metadata(index: indexName, source: "host", sourceType: "log", host: "customhostname");
            var invalidMetaData = new HttpEventCollectorEventInfo.Metadata(index: "notexistingindex", source: "host", sourceType: "log", host: "customhostname");

            var listenerWithWrongToken = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: "notexistingtoken",
                metadata: validMetaData);
            var listenerWithWrongUri = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8087"),
                token: token,
                metadata: validMetaData);
            var listenerWithWrongMetadata = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: token,
                metadata: invalidMetaData);

            bool wrongTokenWasRaised = false;

            listenerWithWrongToken.AddLoggingFailureHandler((HttpEventCollectorException e) =>
            {
                wrongTokenWasRaised = true;
            });
            bool wrongUriWasRaised = false;

            listenerWithWrongUri.AddLoggingFailureHandler((HttpEventCollectorException e) =>
            {
                wrongUriWasRaised = true;
            });
            bool wrongMetaDataWasRaised = false;

            listenerWithWrongMetadata.AddLoggingFailureHandler((HttpEventCollectorException e) =>
            {
                wrongMetaDataWasRaised = true;
            });

            trace.Listeners.Add(listenerWithWrongToken);
            trace.Listeners.Add(listenerWithWrongUri);
            trace.Listeners.Add(listenerWithWrongMetadata);
            // Generate data
            int eventCounter = GenerateData(trace);

            Console.WriteLine("{0} events were created, waiting for errors to be raised.", eventCounter);
            Thread.Sleep(30 * 1000);
            trace.Close();
            Assert.True(wrongTokenWasRaised);
            Assert.True(wrongUriWasRaised);
            Assert.True(wrongMetaDataWasRaised);
        }
Esempio n. 22
0
        public static void Dispose()
        {
            if (ts != null)
            {
                ts.Flush();
                ts.Close();
                StopTimer();

                objStream.Close();
                objStream.Dispose();
                try
                {
                    objTraceListener.Close();
                    objTraceListener.Dispose();
                }
                catch
                {
                }

                if (File.Exists(logFileName))
                {
                    FileStream file = new FileStream(logFileName, FileMode.OpenOrCreate, FileAccess.Write);
                    file.Close();
                }
            }
        }
Esempio n. 23
0
        public int ReadCities(string filename)
        {
            traceSource.TraceInformation("Read Cities started");
            traceSource.Flush();

            try
            {
                using (TextReader reader = new StreamReader(filename))
                {
                    IEnumerable <string[]> citiesAsStrings = reader.GetSplittedLines('\t');
                    IEnumerable <City>     c = citiesAsStrings.Select(city => new City(city[0].ToString(), city[1].ToString(), int.Parse(city[2]), double.Parse(city[3], CultureInfo.InvariantCulture), double.Parse(city[4], CultureInfo.InvariantCulture))).ToArray();
                    cities.AddRange(c);
                    traceSource.TraceInformation("Read Cities ended");
                    traceSource.Flush();
                    traceSource.Close();
                    return(c.Count());
                }
            }
            catch (FileNotFoundException e)
            {
                traceSourceErrors.TraceData(TraceEventType.Critical, 1, e.StackTrace);
                traceSource.Flush();
            }
            return(-1);
        }
        public async Task TestTcpTraceListener()
        {
            var listener = new TcpListener(IPAddress.Loopback, 0);

            listener.Start();
            int port = ((IPEndPoint)listener.Server.LocalEndPoint).Port;


            var traceSource = new TraceSource("UnitTestLogger");

            traceSource.Listeners.Remove("Default");
            traceSource.Switch.Level = SourceLevels.All;
            traceSource.Listeners.Add(new TcpTraceListener(
                                          IPAddress.Loopback, port,
                                          new ExponentialBackoffTcpReconnectionPolicy()));

            var listenerClient = await listener.AcceptTcpClientAsync();

            traceSource.TraceEvent(TraceEventType.Information, 100, "Boris");

            var receiverReader = new StreamReader(listenerClient.GetStream());
            var line           = await receiverReader.ReadLineAsync();

            Assert.True(line.EndsWith("UnitTestLogger Information: 100 : Boris"));

            listenerClient.Close();
            listener.Stop();
            traceSource.Close();
        }
Esempio n. 25
0
        public async Task TestUdpTraceListener()
        {
            int port      = 11000;
            var udpclient = new UdpClient(port);

            var traceSource = new TraceSource("UnitTestLogger");

            traceSource.Listeners.Remove("Default");
            traceSource.Switch.Level = SourceLevels.All;
            traceSource.Listeners.Add(new UdpTraceListener(IPAddress.Loopback, port));

            traceSource.TraceEvent(TraceEventType.Information, 100, "Boris");

            var dgram = await udpclient.ReceiveAsync();

            var receivedText = Encoding.UTF8.GetString(dgram.Buffer);

            Assert.Equal("UnitTestLogger Information: 100 : ", receivedText);

            dgram = await udpclient.ReceiveAsync();

            receivedText = Encoding.UTF8.GetString(dgram.Buffer);
            Assert.Equal("Boris\r\n", receivedText);

            udpclient.Close();
            traceSource.Close();
        }
    static void Main()
    {
        File.Delete("NotEscaped.xml");
        TraceSource ts = new TraceSource("TestSource");

        ts.Listeners.Add(new XmlWriterTraceListener("NotEscaped.xml"));
        ts.Switch.Level = SourceLevels.All;
        string         testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
        XmlTextReader  myXml      = new XmlTextReader(new StringReader(testString));
        XPathDocument  xDoc       = new XPathDocument(myXml);
        XPathNavigator myNav      = xDoc.CreateNavigator();

        ts.TraceData(TraceEventType.Error, 38, myNav);

        ts.Flush();
        ts.Close();

        File.Delete("Escaped.xml");
        TraceSource ts2 = new TraceSource("TestSource2");

        ts2.Listeners.Add(new XmlWriterTraceListener("Escaped.xml"));
        ts2.Switch.Level = SourceLevels.All;
        ts2.TraceData(TraceEventType.Error, 38, testString);

        ts2.Flush();
        ts2.Close();
    }
Esempio n. 27
0
        static void Main(string[] args)
        {
            //Add listener by code. See App.config for configuration in XML.
            //Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
            //Debug.AutoFlush = true;

            //To add listeners for default tracing methods, config "listeners"
            //element under "trace" element in App.config.
            Trace.WriteLine("Call Trace.WriteLine");
            Console.WriteLine("I'm main!");
            Trace.TraceInformation("Call Trace.TraceInformation");
            Trace.TraceError("Call Trace.TraceError");

            //Trace with TraceSource in code. "MyTraceSource" is configed in
            //App.config.
            TraceSource ts = new TraceSource("MyTraceSource");

            ts.TraceEvent(TraceEventType.Information, 123, "My trace event.");
            ts.TraceEvent(TraceEventType.Error, 123, "My trace error event.");
            ts.Flush();
            ts.Close();

            //MyTrace uses the same "MyTraceSource" as above code. Attention:
            //there has to be <trace autoflush="true" ...> in App.config to
            //see the output from MyTrace.TraceInfo/Error, though it uses the
            //same "MyTraceSource" like the above code.
            MyTrace.TraceInfo("MyTrace works!");
            MyTrace.TraceError("MyTrace(error) works!");
        }
    static void Main()
    {
        File.Delete("TraceOutput.xml");
        TraceSource ts = new TraceSource("TestSource");

#if NOCONFIGFILE
        //ts.Listeners.Add(new EventSchemaTraceListener("TraceOutput.xml", "eventListener", 65536, TraceLogRetentionOption.LimitedCircularFiles, 20480000, 2));
        ts.Listeners.Add(new EventSchemaTraceListener("TraceOutput.xml", "eventListener"));
        ts.Listeners["eventListener"].TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId | TraceOptions.Timestamp;
#endif
        ts.Switch.Level = SourceLevels.All;
        string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
        UnescapedXmlDiagnosticData unXData = new UnescapedXmlDiagnosticData(testString);
        ts.TraceData(TraceEventType.Error, 38, unXData);
        ts.TraceEvent(TraceEventType.Error, 38, testString);
        Trace.Listeners.Add(new EventSchemaTraceListener("TraceOutput.xml"));
        Trace.Write("test", "test");
        Trace.Flush();
        ts.Flush();
        ts.Close();
        DisplayProperties(ts);
        Process.Start("notepad.exe", "TraceOutput.xml");
        Console.WriteLine("Press the enter key to exit");
        Console.ReadLine();
    }
Esempio n. 29
0
 public static void Close()
 {
     if (logSource != null)
     {
         logSource.Close();
     }
 }
Esempio n. 30
0
        static void Main(string[] args)
        {
            mySource.Switch = new SourceSwitch("sourceSwitch", "Error");
            mySource.Listeners.Remove("Default");

            TextWriterTraceListener textListener = new TextWriterTraceListener("myListener.log");

            textListener.TraceOutputOptions = TraceOptions.DateTime | TraceOptions.Callstack;
            textListener.Filter             = new EventTypeFilter(SourceLevels.Error);
            mySource.Listeners.Add(textListener);

            ConsoleTraceListener consoleListener = new ConsoleTraceListener(false);

            consoleListener.Filter = new EventTypeFilter(SourceLevels.Information);
            consoleListener.Name   = "console";
            mySource.Listeners.Add(consoleListener);

            Activity1();

            mySource.Listeners["console"].Filter = new EventTypeFilter(SourceLevels.Critical);
            Activity2();

            mySource.Switch.Level = SourceLevels.All;

            mySource.Listeners["console"].Filter = new EventTypeFilter(SourceLevels.Information);
            Activity3();

            mySource.Close();
            Console.Read();
        }
Esempio n. 31
0
 static void Close()
 {
     if (IntegrationTraceSource != null)
     {
         IntegrationTraceSource.Close();
     }
 }
Esempio n. 32
0
        public void CloseTest()
        {
            var trace = new TraceSource("T1", SourceLevels.All);
            trace.Listeners.Clear();

            var listener = new TestTraceListener();
            trace.Listeners.Add(listener);
            trace.Close();
            // NOTE: this assertion fails on .net 4.5
            // where TraceSource.Close calls TraceListener.Close, not Dispose.
            Assert.Equal(1, listener.GetCallCount(Method.Dispose));
            // Assert that writing to a closed TraceSource is not an error.
            trace.TraceEvent(TraceEventType.Critical, 0);
        }
        public static void SendEventsBatchedByTime()
        {
            string tokenName = "batchedbytimetoken";
            string indexName = "batchedbytimeindex";
            SplunkCliWrapper splunk = new SplunkCliWrapper();
            double testStartTime = SplunkCliWrapper.GetEpochTime();
            string token = CreateIndexAndToken(splunk, tokenName, indexName);

            var trace = new TraceSource("HttpEventCollectorLogger");
            trace.Switch.Level = SourceLevels.All;
            var meta = new HttpEventCollectorEventInfo.Metadata(index: indexName, source: "host", sourceType: "log", host: "customhostname");
            var listener = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: token,
                metadata: meta,
                batchInterval: 1000);
            trace.Listeners.Add(listener);

            GenerateDataWaitForIndexingCompletion(splunk, indexName, testStartTime, trace);
            trace.Close();
        }
        static void VerifyErrorsAreRaised()
        {
            string indexName = "errorindex";
            string tokenName = "errortoken";
            double testStartTime = SplunkCliWrapper.GetEpochTime();
            SplunkCliWrapper splunk = new SplunkCliWrapper();
            string token = CreateIndexAndToken(splunk, tokenName, indexName);

            var trace = new TraceSource("HttpEventCollectorLogger");
            trace.Switch.Level = SourceLevels.All;

            var validMetaData = new HttpEventCollectorEventInfo.Metadata(index: indexName, source: "host", sourceType: "log", host: "customhostname");
            var invalidMetaData = new HttpEventCollectorEventInfo.Metadata(index: "notexistingindex", source: "host", sourceType: "log", host: "customhostname");

            var listenerWithWrongToken = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: "notexistingtoken",
                metadata: validMetaData);
            var listenerWithWrongUri = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8087"),
                token: token,
                metadata: validMetaData);
            var listenerWithWrongMetadata = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: token,
                metadata: invalidMetaData);

            bool wrongTokenWasRaised = false;
            listenerWithWrongToken.AddLoggingFailureHandler((HttpEventCollectorException e) =>
            {
                wrongTokenWasRaised = true;
            });
            bool wrongUriWasRaised = false;
            listenerWithWrongUri.AddLoggingFailureHandler((HttpEventCollectorException e) =>
            {
                wrongUriWasRaised = true;
            });
            bool wrongMetaDataWasRaised = false;
            listenerWithWrongMetadata.AddLoggingFailureHandler((HttpEventCollectorException e) =>
            {
                wrongMetaDataWasRaised = true;
            });

            trace.Listeners.Add(listenerWithWrongToken);
            trace.Listeners.Add(listenerWithWrongUri);
            trace.Listeners.Add(listenerWithWrongMetadata);
            // Generate data
            int eventCounter = GenerateData(trace);
            Console.WriteLine("{0} events were created, waiting for errors to be raised.", eventCounter);
            Thread.Sleep(30 * 1000);
            trace.Close();
            Assert.True(wrongTokenWasRaised);
            Assert.True(wrongUriWasRaised);
            Assert.True(wrongMetaDataWasRaised);
        }
        public void VerifyFlushEvents()
        {
            string tokenName = "flusheventtoken";
            string indexName = "flusheventdindex";
            SplunkCliWrapper splunk = new SplunkCliWrapper();
            double testStartTime = SplunkCliWrapper.GetEpochTime();

            string token = CreateIndexAndToken(splunk, tokenName, indexName);
            splunk.StopServer();
            Thread.Sleep(5 * 1000);

            var trace = new TraceSource("HttpEventCollectorLogger");
            trace.Switch.Level = SourceLevels.All;
            var meta = new HttpEventCollectorEventInfo.Metadata(index: indexName, source: "host", sourceType: "log", host: "customhostname");
            var listener = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: token,
                retriesOnError: int.MaxValue,
                metadata: meta);
            trace.Listeners.Add(listener);

            // Generate data, wait a little bit so retries are happenning and start Splunk. Expecting to see all data make it
            const int eventsToGeneratePerLoop = 250;
            const int expectedCount = eventsToGeneratePerLoop * 7;
            int eventCounter = GenerateData(trace, eventsPerLoop: eventsToGeneratePerLoop);
            splunk.StartServer();
            trace.Close();

            // Verify every event made to Splunk
            splunk.WaitForIndexingToComplete(indexName, stabilityPeriod: 30);
            int eventsFound = splunk.GetSearchCount("index=" + indexName);
            Assert.Equal(expectedCount, eventsFound);
        }
        static void VerifyEventsAreInOrder()
        {
            string tokenName = "verifyeventsareinordertoken";
            string indexName = "verifyeventsareinorderindex";
            SplunkCliWrapper splunk = new SplunkCliWrapper();
            double testStartTime = SplunkCliWrapper.GetEpochTime();
            string token = CreateIndexAndToken(splunk, tokenName, indexName);

            var trace = new TraceSource("HttpEventCollectorLogger");
            trace.Switch.Level = SourceLevels.All;
            var meta = new HttpEventCollectorEventInfo.Metadata(index: indexName, source: "host", sourceType: "log", host: "customhostname");
            var listener = new HttpEventCollectorTraceListener(
                uri: new Uri("https://127.0.0.1:8088"),
                token: token,
                metadata: meta);
            trace.Listeners.Add(listener);

            // Generate data
            int totalEvents = 1000;
            string[] filer = new string[2];
            filer[0] = new string('s', 1);
            filer[1] = new string('l', 100000);
            for (int i = 0; i < totalEvents; i++)
            {
                trace.TraceInformation(string.Format("TraceInformation. This is event {0}. {1}", i, filer[i%2]));
            }

            string searchQuery = "index=" + indexName;
            Console.WriteLine("{0} events were created, waiting for indexing to complete.", totalEvents);
            splunk.WaitForIndexingToComplete(indexName);
            int eventsFound = splunk.GetSearchCount(searchQuery);
            Console.WriteLine("Indexing completed, {0} events were found. Elapsed time {1:F2} seconds", eventsFound, SplunkCliWrapper.GetEpochTime() - testStartTime);
            // Verify all events were indexed correctly and in order
            Assert.Equal(totalEvents, eventsFound);
            List<string> searchResults = splunk.GetSearchResults(searchQuery);
            Assert.Equal(searchResults.Count, eventsFound);
            for (int i = 0; i< totalEvents; i++)
            {
                int id = totalEvents - i - 1;
                string expected = string.Format("TraceInformation. This is event {0}. {1}", id, filer[id % 2]);
                Assert.True(searchResults[i].Contains(expected));
            }
            trace.Close();
        }
        public async Task TestUdpTraceListener()
        {
            int port = 11000;
            var udpclient = new UdpClient(port);

            var traceSource = new TraceSource("UnitTestLogger");
            traceSource.Listeners.Remove("Default");
            traceSource.Switch.Level = SourceLevels.All;
            traceSource.Listeners.Add(new UdpTraceListener(IPAddress.Loopback, port));
            
            traceSource.TraceEvent(TraceEventType.Information, 100, "Boris");

            var dgram = await udpclient.ReceiveAsync();
            var receivedText = Encoding.UTF8.GetString(dgram.Buffer);
            Assert.Equal("UnitTestLogger Information: 100 : ", receivedText);

            dgram = await udpclient.ReceiveAsync();
            receivedText = Encoding.UTF8.GetString(dgram.Buffer);
            Assert.Equal("Boris\r\n", receivedText);

            udpclient.Close();
            traceSource.Close();
        }