WP7開發學習(3):在WP7中使用WCF+log4net 打印並輸出日志文件(附源碼)


在“合一微博”開發的過程中,我想看看從騰訊請求過來的微博列表(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,就會出現此類報錯,怎么解決呢?

這里我們可以借鑒“楊過”兄的一片文章,寫得很詳細,經測試,有效。

地址如下:http://www.cnblogs.com/yjmyzz/archive/2011/06/29/2093829.html

 

至於怎么使用log4net ,這里就廢話了,默認各位看官都了解。

 

這里附上此方案的一個完整的demo源碼:猛點下載

 

三,介紹兩款可以輸出WP7調試日志的第三方框架

1NLog  ,下載地址:http://nlog.codeplex.com/

2SilverlightLogging,下載地址http://silverlightlogging.codeplex.com/

 

 

原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/03/21/2409300.html

作者 : 徐明祥 
出處:http://www.cnblogs.com/xumingxiang 
版權:本文版權歸作者和博客園共有
轉載:歡迎轉載,為了保存作者的創作熱情,請按要求【轉載】,謝謝
要求:未經作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM