一、高考失敗,分數不高,不能爲所欲爲java
二、農村孩子,學點技術,未來有口飯吃git
三、有科技含量,想玩電腦(那個時候是這麼想的,那個時候以爲學計算機就是玩電腦)程序員
一、大一大二學了c,C++,大三分方向NET和JAVA,以爲C,C++,C#看着好看,讀者順,就選了。github
二、大多數學習好點的學了JAVA,不想跟風選了C#面試
本科時候winform,asp.net,WindowsPhone各學了半年,學的最好的還算是WP,只能說懂了一點點。有了點C#基礎,對項目什麼基本沒作什麼,除了一些管理系統。今後就稀裏糊塗走上了NET平臺。偶然機會讀了個研究生也就沒機會找工做,其實我我的以爲讀研用處不大,不過研究生遇到了一羣好朋友仍是挺感恩的。研究生期間打了一年英雄聯盟,由於以前沒打過遊戲,就瘋狂玩了一年。而後就是找實習,但是我也就有點NET的經驗,因此只能拿這個找實習了。但我總以爲NET不受人歡迎,前途堪憂,至今如此這麼認爲。其實也有java相關職位,但我底氣不足,在學校也就沒簽。數據庫
2014年7月1日無奈來到帝都找實習,其實我一點也不想來,但想了想爲了掙點學費就來了。這裏有本科的同窗,有幾個好朋友正好工做一年,因此我來也沒受什麼罪。沒有被騙,沒有由於住處費盡心思。就在朋友那住着,後來走了,不過那是後話。我本身從學校走的時候打了20份簡歷,想着20份投出去後若是尚未找到就直接作商務或者銷售算了。本身簡歷上都是WP,Silverlight的相關經驗。就直接投的是WP職位,感受本身作什麼都無所謂,工資別太寒磣就行。安卓和IOS也投了,雖然沒經驗沒基礎,我感受學會應該也不難。主要投的是WP職位,C#工程師職位這兩個職位。面試電話平均天天兩個,大部分都是中小公司,甚至還有十個如下的公司。可是隻要給我打電話了,不管多遠我都去面試和多不想去,以爲這是一份尊重吧。面試過程就不說了,越小的公司越給你搞得想死的感受,以爲你沒經驗等等。大點的公司到是對人挺尊重的,給人一種溫暖的感受。都是程序員,相煎何太急!!編程
找工做期間,擠地鐵,擠公交,內心老是沉沉的,以爲帝都一點也沒有給我帶來興奮的感受。這就是幸福感不行吧。扯遠了。拿着一點WP的經驗和對編程的熱情,有時候熱情還真能當飯吃。一週面試了八家,一共三個offer。其中兩個都是五千如下的,WP職位。工資低的緣由告訴我說,由於你沒畢業證,不能按照你的理想薪資來。我其實蠻想作移動開發的。可是這工資在北京太寒磣。第三個offer是C#工程師,工資高點,辦公環境好點。可是缺點是沒人帶,就一個C#工程師,主要職責是WPF,WindowsPhone,Windows8。。。。。說白了,只要是與NET相關的都是你的。爲了給父母減輕負擔,我仍是選擇了工資好點的,雖然感受對本身發展有點很差。不知道選擇是否正確,各位看官怎麼看?這一學估計之後就是NET,畢業想換方向就難了。沒人帶,遇到問題本身解決,沒人討論,沒人說話,這種日子,哎,安靜!!!無論怎麼說畢竟是第一份工做,畢竟是」初戀「,我也就全力以赴,生怕對不住公司給發的工資。一個月學了學WPF以爲難點對我來講是界面(呵呵,公司沒有會Blend的設計師,沒辦法,本身有沒有藝術細胞)。如今沒什麼項目任務,索性就研究下公司現有成熟項目的源碼,也再溫習一下WPF知識。學習過程當中遇到沒用過的就仔細研究研究,我想這樣成長是否是更快點。有什麼建議但願看官也能給我提提。有時候一直在徘徊,編程這條路還能走多久?畢業後要不要繼續走這條路?這也許真的很難回答。app
下面是今天看公司源碼涉及到寫日誌的問題,項目用了一個NLog的類庫,之前沒用過,就學習了下。沒興趣的跳過得了,沒看過的能夠了解下。asp.net
官方定義:NLog is a free logging platform for .NET, Silverlight and Windows Phone with rich log routing and management capabilities. It makes it easy to produce and manage high-quality logs for your application regardless of its size or complexity. 簡單的來講NLog就是一個開源的日誌管理平臺,支持.net,Silverlight,Windows Phone。有着豐富的路由和管理功能。可以很容易的生成和管理你的項目日誌。less
NLog is an open source project hosted on GitHub and source code is available under the terms of BSD license. //在GitHub能夠下到源碼,源碼是基於BSD License的
Binary packages are available via NuGet. //能夠經過NuGet將類庫直接導入到項目中去
驗的「新生」來講。苦逼的是
簡單的來講NLog可以導出基於.NET語言的(C#,VB)全部的診斷信息。經過數據上下文(contextual information,包含了發生時間,線程,進程,嚴重程度等)來格式化你想要導出的信息,打出到哪裏呢?Nlog提供了導出目標(targets 文本、數據庫、Email、控制檯等)
very easy to configure, both through configuration file and programmatically。官方文檔中這句算是最重要的了,經過它展現瞭如何應用到本身的項目中去。提供了兩種方式:配置文件和後臺編程均可以。
以上相關連接,給出了向文件,遠程日誌,數據庫,郵箱等爲目標的日誌輸出相關例子,用時查閱便可。下面結合項目實例,簡單瞭解下最簡單的使用過程。
第一步:經過NetGet導入類庫dll。
第二步:打開配置文件NLog.config
第三步:定義導出目標和輸出哪些信息
添加目標,並指定輸出的佈局,也就是說咱們想把項目日誌輸出到哪裏,輸出的格式是什麼?
<target xsi:type="Console" name="Conso"
layout="${longdate} ${uppercase:${level}} ${message}" />
layout是固定格式,${}是語法格式,這裏分別輸出的信息分別爲:時間,級別,信息
第四步:定義輸出規則
咱們到底要輸出哪些信息到日誌文件中去,這就涉及到了記錄等級的問題。
記錄等級(log level)信息,用來描述該條信息的重要性。NLog支持以下幾種記錄等級:
這個小例子,咱們把輸出等級設爲等級等於或高於Debug等級的信息輸出至控制檯
<logger name="*" minlevel="Debug" writeTo="Conso"></logger> 這句話很明瞭但須要說明的是write to屬性應該是target的名字。意思是寫到輸出目標裏面。
第五步:建立logger對像,若但願生成並輸出診斷信息,咱們還須要添加一個Logger對象。Logger對象的方法名和記錄等級的名稱同樣(Debug()、Info()、Fatal()……)。Logger對象是經過LogManager對象建立的。建議Logger對象的名稱和程序的類名保持一致。調用LogManager的GetCurrentClassLogger()方法便可自動爲當前類建立一個Logger對象。後臺代碼以下:
using NLog; namespace WpfApplication4 { /// <summary> /// MainWindow.xaml 的交互邏輯 /// </summary> public partial class MainWindow : Window { public static Logger mainwindowLogger = LogManager.GetCurrentClassLogger();//該Logger對象表明與當前類相關聯的日誌消息的來源。 public MainWindow() { InitializeComponent(); mainwindowLogger.Debug("模擬一條Debug級別的信息");//發出一條Debug記錄等級的診斷信息。 } } }
經過以上幾步,應該基本瞭解了Nlog的工做流程。配置文件中配置輸出目標,要輸出哪些診斷信息(layout),並定義輸出規則,什麼等級的信息輸出。應用程序後臺代碼中使用logger對象定義輸出的診斷信息。
咱們新增長一個需求,若是同時輸出到一個文件呢?該如何作?這也不難,須要修改配置文件就行。添加一個target便可。
兩幅圖已經很說明問題,再也不詳細描述。
零零散散寫了個簡單的例子,只供像我這種入門級別的人看看罷了,下一篇,繼續深刻探討NLog。