问题描述
现在题目的要求是:Log4Net(各种配置模式,可以将日志写到DB、通过UDP传输到其他数据库)。我主要不明白的是”通过UDP传输到其他数据库“该怎么实现?是说先将数据通过UDP传到别的服务然后再写到数据库里吗?不知道该怎么做呀。。。。。麻烦说的详细一点。。。。。我看了apache上的帮助文档。照着写了UdpAppender的例子如下。.config文件:<!--将日志输出到udp--><appendername="UdpAppender"type="log4net.Appender.UdpAppender"><!--远程地址--><remoteAddressvalue="XXX.XXX.X.XX"/><!--remotePort:远程端口,就是你要连接的服务器端的端口--><paramname="Encoding"value="UTF8"/><remotePortvalue="138"/><layouttype="log4net.Layout.PatternLayout"value="%-5level%logger[%ndc]-%message%newline"/></appender>.cs文件:IPEndPointremoteEndPoint=newIPEndPoint(IPAddress.Any,0);UdpClientudpClient;byte[]buffer;stringloggingEvent;try{udpClient=newUdpClient(138);while(true){buffer=udpClient.Receive(refremoteEndPoint);loggingEvent=Encoding.UTF8.GetString(buffer);//在控制台输出的是乱码//loggingEvent=Encoding.GetEncoding("gb2312").GetString(buffer);//在控制台依然输出的是乱码Console.WriteLine(loggingEvent);}}catch(Exceptionex){Console.WriteLine(ex.ToString());}在控制台输出的结果是这样子的乱码!!!!求解答!实在是不知道哪里写错了!!另外这个代码的意思也不太明白。两个问题!麻烦各位前辈帮帮忙。。。。。谢谢啦T_T
解决方案
本帖最后由 z_lanjin 于 2014-09-03 15:54:31 编辑
解决方案二:
没有人吗。。。。自己顶一个
解决方案三:
解决方案四:
引用2楼wangnaisheng的回复:那我这代码里为啥有乱码呀
解决方案五:
引用3楼z_lanjin的回复:
Quote: 引用2楼wangnaisheng的回复:那我这代码里为啥有乱码呀
gb2312与UTF8编码格式要统一才行。
解决方案六:
引用4楼wangnaisheng的回复:
Quote: 引用3楼z_lanjin的回复:
Quote: 引用2楼wangnaisheng的回复:那我这代码里为啥有乱码呀gb2312与UTF8编码格式要统一才行。
我DOS窗口用的是936简体中文GBK。代码里用的是UTF-8
解决方案七:
自己顶一个。。。。。求援助,。。。。。
解决方案八:
因为log4net发来的数据并非都是可读文本,前面还有包头,本来就是二进制的。
解决方案九:
引用7楼caozhy的回复:
因为log4net发来的数据并非都是可读文本,前面还有包头,本来就是二进制的。
貌似说的很对。那我该如何解决呀!!!!!可是我将日志输出到文本时候(即FileAppender)就可以显示正常呀。。。。
解决方案十:
引用7楼caozhy的回复:
因为log4net发来的数据并非都是可读文本,前面还有包头,本来就是二进制的。
还有,包头是啥?
解决方案十一:
求助啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。