Пример #1
0
 void Start(object newSocket)
 {
     try
     {
         using (var socket = (Socket)newSocket)
         {
             using (var ns = new NetworkStream(socket, FileAccess.Read, false))
             {
                 string tail = null;
                 while (server != null)
                 {
                     var logMessages = ReceiverUtils.ReadEvents(ns, "TcpLogger", ref tail);
                     foreach (var logMessage in logMessages)
                     {
                         logMessage.LoggerName = string.Format(":{1}.{0}", logMessage.LoggerName, Port);
                         OnNewMessage(logMessage);
                     }
                 }
             }
         }
     }
     catch (IOException e)
     {
         Console.WriteLine(e);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
Пример #2
0
        private void ReadFile()
        {
            if ((fileReader == null) || (fileReader.BaseStream.Length == lastFileLength))
            {
                return;
            }

            // Seek to the last file length
            fileReader.BaseStream.Seek(lastFileLength, SeekOrigin.Begin);

            // Get last added lines
            string line;
            var    sb      = new StringBuilder();
            var    logMsgs = new List <LogMessage>();

            while ((line = fileReader.ReadLine()) != null)
            {
                if (fileFormat == FileFormatEnums.Flat)
                {
                    var logMsg = new LogMessage
                    {
                        ThreadName = "NA",
                        Message    = line,
                        TimeStamp  = DateTime.Now,
                        LogLevel   = LogLevel.Info
                    };

                    logMsgs.Add(logMsg);
                }
                else
                {
                    sb.AppendLine(line);

                    // This condition allows us to process events that spread over multiple lines
                    if (line.Contains("</log4j:event>"))
                    {
                        LogMessage logMsg = ReceiverUtils.ParseLog4JXmlLogEvent(sb.ToString(), null);
                        logMsgs.Add(logMsg);
                        sb = new StringBuilder();
                    }
                }
            }

            // Notify the UI with the set of messages
            OnNewMessages(logMsgs.ToArray());

            // Update the last file length
            lastFileLength = fileReader.BaseStream.Position;
        }
Пример #3
0
        private void Start()
        {
            while (true)
            {
                try
                {
                    byte[] buffer       = udpClient.Receive(ref remoteEndPoint);
                    string loggingEvent = System.Text.Encoding.UTF8.GetString(buffer);

                    LogMessage logMsg = ReceiverUtils.ParseLog4JXmlLogEvent(loggingEvent, "UdpLogger");
                    logMsg.LoggerName = string.Format("{0}_{1}", remoteEndPoint.Address.ToString().Replace(".", "-"), logMsg.LoggerName);
                    OnNewMessage(logMsg);
                }
                catch (SocketException)
                {
                    return;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    return;
                }
            }
        }