這星期收到許多勸敗Microsoft Teams的分享訊息,Teams也是一種辦公室即時通訊合作軟體,不過以前Teams得要有Office 365才能用,現在有免費的方案了。除了團隊溝通、檔案共用和視訊通話等功能,我們先從應用程式的Log拋到Teams 頻道開始,來串一下NLog To Teams Channel。
2018-07-21
這星期收到許多勸敗Microsoft Teams的分享訊息,Teams也是一種辦公室即時通訊合作軟體,不過以前Teams得要有Office 365才能用,現在有免費的方案了。除了團隊溝通、檔案共用和視訊通話等功能,我們先從應用程式的Log拋到Teams 頻道開始,來串一下NLog To Teams Channel。
這兩天客戶碰到了NLog使用上的問題,程式將Fatal等級的log設定了兩組輸出(File and Windows Event log),但File產出時好時壞,有時那一天應該有log產生但卻整天都沒檔案,來筆記今天白天追蹤NLog無法寫出log的方法。
最近為了加快寫log速度於是使用了log4net中的BufferingForwarder:她可以將log訊息寫入Buffer,等到Buffer滿到指定數目或是Process結束後再將log輸出到到檔案!
這兩天又有需求想在執行過程即時看到log訊息,於是在log4net訂了第兩組輸出媒體: ConsoleAppender。
為了避免多個Process對同一個log檔案寫入而引發檔案鎖定或者相互覆蓋而出現log內容遺失問題,上一篇使用Buffer來解決,這一篇用MSMQ。
為了避免多個Process對同一個log檔案寫入而引發檔案鎖定或者相互覆蓋而出現log內容遺失問題,在log4net config中,我們會設定FileAppender+MinimalLock屬性,但啟動minimalLock屬性後,如果程式有大量的log需求,效能就會受到影響。
Log是電腦上發生動作和事件的歷史,紀錄時若有統一的方法作為標準,對事後問題的追查及分析將會有很大的幫助,
在.NET環境常見幾種元件可以輔助我們完成這項工作,幾年前厲害的同事幫我們選擇了log4net,實際上也很方便,最近想調整小地方,剛好來試其他幾種。