WP7开发学习(3):在WP7中使用WCF+log4net 打印并输出日志文件(附源码)
2012-03-21 09:59
239 查看
在“合一微博”开发的过程中,我想看看从腾讯请求过来的微博列表(JSON数组)是什么样的,所以我想打印出日志。于是就本能的想到了log4net ,于是就直接引用log4net.dll 。
结果可想而知.....
于是就想去看看log4net的源码,想用wp7重新编译的一把。但是我立马就否定了这个思路。
因为在wp7程序中操作本地文件不是那么容易的,要突破IO,沙盒什么的。
那怎么办呢?
下面给出三种解决方案
一,使用System.Diagnostics.Debug.WriteLine()
这个方案很简单,使用步骤如下:
1,引用命名空间System.Diagnostics
2,只要在需要输出日志的地方写一行Debug. WriteLine()
3,摁组合键Ctrl+W,O 打开VS的输出视图
4,摁F5
这个方案,很多同学都写过,不信你去搜一把“WP7 在调试过程中显示日志” 。在这我就不多说了。
但是这个方案实在太弱了:
1,不能把日志写到文件里
2,很坑爹——输出的文字有限,如果文字过长,它不会全部输出,只会输出前面一部分
二,使用WCF+log4net 输出日志
鉴于Diagnostics.Debug.的缺陷,我只能寻思另外的办法,既然wp7应用程序不能直接输出日志文件,那就使用间接的方式吧:WCF+log4net。
实现步骤如下:
1,新建一个WCF服务应用程序 作为打印日志的服务端程序,比如叫 LogService 吧。
2,在LogService 中引用 配置log4net。
3,在LogService中添加一打印输出日志的方法,比如叫“WriteLog” 。
4,在客户端程序,即WP7 应用程序中,引用 LogService 。
5,在需要输出日志的地方调用WriteLogAsync方法 。
OK,好像收工了。
经测试 ,如果输出的日志很长会出现“Not Found”或者“远程主机强迫关闭了一个现有的连接”或者“The remote server returned an unexpected response: (400) Bad Request.”的错误,这是由于WCF 的安全机制 导致的, 传输的参数大于8k,就会出现此类报错,怎么解决呢?
这里我们可以借鉴“杨过”兄的一片文章,写得很详细,经测试,有效。
地址如下:/article/4607171.html
至于怎么使用log4net ,这里就废话了,默认各位看官都了解。
这里附上此方案的一个完整的demo源码:猛点下载
三,介绍两款可以输出WP7调试日志的第三方框架
1,NLog ,下载地址:http://nlog.codeplex.com/
2,SilverlightLogging,下载地址http://silverlightlogging.codeplex.com/
原文地址:/article/5883660.html
作者 : 徐明祥
出处:http://www.cnblogs.com/xumingxiang
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
结果可想而知.....
于是就想去看看log4net的源码,想用wp7重新编译的一把。但是我立马就否定了这个思路。
因为在wp7程序中操作本地文件不是那么容易的,要突破IO,沙盒什么的。
那怎么办呢?
下面给出三种解决方案
一,使用System.Diagnostics.Debug.WriteLine()
这个方案很简单,使用步骤如下:
1,引用命名空间System.Diagnostics
2,只要在需要输出日志的地方写一行Debug. WriteLine()
3,摁组合键Ctrl+W,O 打开VS的输出视图
4,摁F5
这个方案,很多同学都写过,不信你去搜一把“WP7 在调试过程中显示日志” 。在这我就不多说了。
但是这个方案实在太弱了:
1,不能把日志写到文件里
2,很坑爹——输出的文字有限,如果文字过长,它不会全部输出,只会输出前面一部分
二,使用WCF+log4net 输出日志
鉴于Diagnostics.Debug.的缺陷,我只能寻思另外的办法,既然wp7应用程序不能直接输出日志文件,那就使用间接的方式吧:WCF+log4net。
实现步骤如下:
1,新建一个WCF服务应用程序 作为打印日志的服务端程序,比如叫 LogService 吧。
2,在LogService 中引用 配置log4net。
3,在LogService中添加一打印输出日志的方法,比如叫“WriteLog” 。
4,在客户端程序,即WP7 应用程序中,引用 LogService 。
5,在需要输出日志的地方调用WriteLogAsync方法 。
OK,好像收工了。
经测试 ,如果输出的日志很长会出现“Not Found”或者“远程主机强迫关闭了一个现有的连接”或者“The remote server returned an unexpected response: (400) Bad Request.”的错误,这是由于WCF 的安全机制 导致的, 传输的参数大于8k,就会出现此类报错,怎么解决呢?
这里我们可以借鉴“杨过”兄的一片文章,写得很详细,经测试,有效。
地址如下:/article/4607171.html
至于怎么使用log4net ,这里就废话了,默认各位看官都了解。
这里附上此方案的一个完整的demo源码:猛点下载
三,介绍两款可以输出WP7调试日志的第三方框架
1,NLog ,下载地址:http://nlog.codeplex.com/
2,SilverlightLogging,下载地址http://silverlightlogging.codeplex.com/
原文地址:/article/5883660.html
作者 : 徐明祥
出处:http://www.cnblogs.com/xumingxiang
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
相关文章推荐
- 使用log4net将日志文件输出替csv格式
- 使用logback.xml配置来实现日志文件输出
- 使用最新的log4cplus(1.1.1)输出多个自定义日志文件,隔离不同的 log 文件输出
- java使用IO打印流输出到文件
- 使用XML文件输入和输出和YAML文件 目标 你会发现以下问题的答案: 如何打印和阅读文本条目文件和OpenCV使用YAML或XML文件? 如何为OpenCV做同样的数据结构?
- linux网络监控工具---系统自带的工具的使用示例(可以监控经过本局域网的任何数据,并可以打印到屏幕或者日志文件)
- SpringBoot使用logback输出日志并打印sql信息
- Log4j的进阶使用-自定义类和+自定义输出日志类型+输出文件
- 安卓使用log4j输出日志到文件
- 经常使用Log日志打印输出
- 实现Qt日志功能并输出到文件(使用qInstallMsgHandler安装customMessageHandler)good
- 日志打印longging模块(控制台和文件同时输出)
- boost log库学习使用三(输出日志到文件)
- logback框架使用误区 如何将所有包的ERROR级别日志集中打印到一个日志文件中
- C++ 打印输出日志文件
- tomcat配置log4j打印输出日志到指定文件
- springboot 配置logback控制台彩色打印,按等级输出日志文件
- Python中将打印输出导向日志文件
- windows下使用log4j将日志输出到文件,包括system.out
- 使用logback.xml配置来实现日志文件输出