Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器

一、介绍

TracerX logger是一个易于上手,且拥有众多高级特性的.NET日志框架.

它能够发送输出结果到多目的地(循环文件、事件日志等....).它也能生成文本和二进制文件.
它拥有一个强大的查看器,该查看器支持过滤、着色、多线程、目录结构、跟踪级别.....
同时它也能够折叠及扩展输出格式,可以显示绝对或者先对的时间戳.可以查看任意一行的输出调用栈.这些特性可以更加容易地帮助我们诊断程序问题.

该文主要介绍如何使用该框架,其中包含了许多代码示例.同时告诉大家,该框架用于了诸多商业软件中.

二、日志查看器

TracerX/TracerXViewer.png

如下诸多特性可以通过菜单查看(有些需要通过双击查看),不要忘记试试在每行或者列头使用一下右键.

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!");
        }
    }
}

看看日志查看器的效果

http://www.codeproject.com/KB/dotnet/TracerX/HelloWorldViewer.png

对于初始化

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 fileBinaryFileTraceLevelTraceLevel.InfoTraceLevel.Inherited
Text fileTextFileTraceLevelTraceLevel.OffTraceLevel.Inherited
Console (i.e., command window)ConsoleTraceLevelTraceLevel.OffTraceLevel.Inherited
Trace.WriteLine()DebugTraceLevelTraceLevel.OffTraceLevel.Inherited
Event logEventLogTraceLevelTraceLevel.OffTraceLevel.Inherited
Event handlerEventHandlerTraceLevelTraceLevel.OffTraceLevel.Inherited

六、更多

http://tracerx.codeplex.com/releases/view/55264

 

七、下载demo及源代码

http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=tracerx&DownloadId=164854&FileTime=130106418982770000&Build=20865

转载于:https://www.cnblogs.com/humble/p/3538947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值