一、介紹
TracerX logger是一個易於上手,且擁有眾多高級特性的.NET日志框架.
它能夠發送輸出結果到多目的地(循環文件、事件日志等....).它也能生成文本和二進制文件.
它擁有一個強大的查看器,該查看器支持過濾、着色、多線程、目錄結構、跟蹤級別.....
同時它也能夠折疊及擴展輸出格式,可以顯示絕對或者先對的時間戳.可以查看任意一行的輸出調用棧.這些特性可以更加容易地幫助我們診斷程序問題.
該文主要介紹如何使用該框架,其中包含了許多代碼示例.同時告訴大家,該框架用於了諸多商業軟件中.
二、日志查看器
如下諸多特性可以通過菜單查看(有些需要通過雙擊查看),不要忘記試試在每行或者列頭使用一下右鍵.
1.可以通過線程名、線程ID、跟蹤級別、文本通配符、以及方法名來過濾或者着色;
2.消息的文本會通過其調用深度縮進;
3.你可以通過雙擊每行的+-折疊或者展開方法調用;
4. 你可以通過使用面包屑欄或者鼠標右鍵瀏覽和查看堆棧.
5.你可以單擊在面包屑上的箭頭來查看給定級別的方法調用.
6.你能夠查看絕對或者相對的時間戳.
7.你可以折疊或者展開每行(其中包含了嵌入式換行符)
8.你可以給每行加一個書簽(可能改行航油特殊的搜索字符串,也可能選中的線程或日志級別)
9.你可以查看調用堆棧(這些堆棧指向選中的行)
10.你可以從同一個線程或不同線程跳到下一個區域
11.你可以選中數據行或者復制列文本到粘貼板;
12.可以自定義列的顯示
其他的大家子去發現吧.
三、咱們來一個helloworld
using TracerX; namespace HelloWorld { class Program { // 這個大家應該懂的. static Logger Log = Logger.GetLogger("Program"); static void Main(string[] args) { // 采用默認配置 Logger.DefaultBinaryFile.Open(); // 日志輸出一個字符串 Log.Info("Hello, World!"); } } }
看看日志查看器的效果
對於初始化
public static Logger GetLogger(string name) public static Logger GetLogger(Type type) public static Logger GetLogger(string name, AppDomain appDomain)
四、來一個復雜點的例子
using System; using System.Threading; using System.IO; using TracerX; namespace Sample { class Program { private static readonly Logger Log = Logger.GetLogger("Program"); // Just one way to initialize TracerX early. private static bool LogFileOpened = InitLogging(); // Initialize the TracerX logging system. private static bool InitLogging() { // It's best to name most threads. Thread.CurrentThread.Name = "MainThread"; // Load TracerX configuration from an XML file. Logger.Xml.Configure("TracerX.xml"); // Open the log file. return Logger.DefaultBinaryFile.Open(); } static void Main(string[] args) { using (Log.InfoCall()) { Helper.Bar(); Helper.Foo(); } } } class Helper { private static readonly Logger Log = Logger.GetLogger("Helper"); public static void Foo() { using (Log.DebugCall()) { Log.Debug(DateTime.Now, " is the current time."); Bar(); } } public static void Bar() { using (Log.DebugCall()) { Log.Debug("This object's type is ", typeof(Helper)); } } } }
五、輸出格式
格式 | Logger 屬性 | 初始化的值 | 其他繼承類的初始化值 |
Binary file | BinaryFileTraceLevel |
TraceLevel.Info |
TraceLevel.Inherited |
Text file | TextFileTraceLevel |
TraceLevel.Off |
TraceLevel.Inherited |
Console (i.e., command window) | ConsoleTraceLevel |
TraceLevel.Off |
TraceLevel.Inherited |
Trace.WriteLine() | DebugTraceLevel |
TraceLevel.Off |
TraceLevel.Inherited |
Event log | EventLogTraceLevel |
TraceLevel.Off |
TraceLevel.Inherited |
Event handler | EventHandlerTraceLevel |
TraceLevel.Off |
TraceLevel.Inherited |
六、更多
http://tracerx.codeplex.com/releases/view/55264