我正在创建一个能够查看NLog从服务器应用程序传输的日志消息的客户端。我让服务器发送消息,客户端接收UDP数据包。我想在WindowsForm(C#)中填充DataGridView,但我无法解析收到的类似XML的消息。我认为这很容易。
生成的数据包如下所示:
<log4j:event logger="SERVER.WCFService" level="INFO" timestamp="1446588493487" thread="14"><log4j:message>SAMPLE MESSAGE</log4j:message><log4j:properties><log4j:data name="log4japp" value="SERVER.vshost.exe(12056)" /><log4j:data name="log4jmachinename" value="SERVER" /></log4j:properties></log4j:event>
我将UDP数据包推送到XmlDocument中,如下所示:
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any,listenPort);
byte[] bytes = listener.Receive(ref groupEP);
XmlDocument xd = new XmlDocument();
using (var sr = new StringReader(Encoding.ASCII.GetString(bytes, 0, bytes.Length)))
using (var xtr = new XmlTextReader(sr) { Namespaces = false })
xd.Load(xtr);
我希望能够为初学者获取关卡,时间戳和消息。