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); } }
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; }
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; } } }