Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器
一、介绍
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
七、下载demo及源代码
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。