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及源代码

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

少侠既然来了就帮推荐一下吧

时间: 2024-10-11 04:13:34

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

第12章 剪贴板_12.3 实现一个剪贴板查看器

12.3.1 剪贴板查看器链 (1)Windows下可运行任意个剪贴板查看器,但只有一个是“当前剪贴板查看器”,Windows只维护这个剪贴板查看器的窗口句柄,并在剪贴板内容改变时,通知它. (2)当A程序注册为剪贴板查看器时,就成为当前查看器.Windows会把上个当前查看器B的窗口句柄交给A程序来保存.当A收到剪贴板消息时,要发送给查看器链中的下一个程序,即B的窗口过程. 12.3.2 剪贴板查看器函数和消息 (1)将程序加入剪贴板查看器链 static HWND hwndNextViewe

一个简单好用的日志框架NLog

之前我介绍过如何使用log4net来记录日志,但最近喜欢上了另一个简单好用的日志框架NLog. 关于NLog和log4net的比较这里就不多讨论了,感兴趣的朋友可以参看.NET日志工具介绍和log4net vs. Nlog这两篇文章.本文主要介绍一下如何在项目中使用NLog. 在Nuget中安装NLog NLog可以直接使用Nuget安装: PM > Install-Package Nlog 使用NLog NLog的使用方式基本上和其它的Log库差不多,分为Trace.Debug.Info.Er

[.Net MVC] 使用 log4net 日志框架

项目:后台管理平台 意义:项目开发中提出增加日志功能,对关键的操作.程序运行中的错误信息进行记录,这对程序部署后的调试有很大意义. 注:本文非原创,只是对网上搜集的信息进行了整合,以备今后查询. 一.最快速的上手步骤 1.用 NuGet来添加log4net 2.在项目根目录下的Web.config中添加节点.在 <configSections> 节点下添加对log4net的引用, <configSections> <section name="log4net&quo

ASP.NET使用log4Net日志组件教程(按日期与按日志大小切割)

对于一个大型网站与系统来说,日志是必备的工具,通过日志你可以非常清楚程序的运行情况,及时得到反馈来解决问题,下面介绍ASP.NET版本的log4Net日志组件是个非常强大的工具,最新版本for .net2.0 1.2.10.0 本人搞了一天,终于知道搞清楚怎样使用了,简单记录一下. 以下介绍的方法是log4net使用单独的配置文件的. 开始行动: 第一步:在项目引用log4net.dll文件 第二步: 在Web.config文件中加入一句代码,位置如下: <configuration>   

从零封装一个Android大图查看器

背景: 大图查看器是许多app的常用功能,主要使用场景是用户点击图片,然后启动一个新界面来展示图片的完整尺寸,并能通过手势移动图片以及放大缩小.当然,上面说的是最基本的功能,实际使用中还要包括:如果是本地图片应该可以移除,如果是网络图片,应提供一个保存到本地的功能等. 本文为什么叫封装一个大图查看器,而不是叫做编写一个大图查看器呢?因为大图查看器的最核心功能,展示图片以及手势操控我们使用了一个开源库来完成,这个开源库叫做subsampling-scale-image-view,这个开源库非常靠谱

Netty:一个非阻塞的客户端/服务器框架

Netty:一个非阻塞的客户端/服务器框架 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Netty是一个异步事件驱动的网络应用框架,为Java网络应用的开发带来了一些新活力.Netty由协议服务器和客户端所组成,可用于快速开发可维护的高性能软件.Netty应用框架及其工具简化了网络编程,而且由Netty社区进行维护. Netty还被归类为NIO客户端/服务器框架,用它能够快速.简易地开发网络应用,使得TCP和UDP套接字服务器的网络编程得以简化和

Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机

Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现的狙击手就是使用望远镜的一个例子,如图2-22所示.   图2-22  游戏中狙击手所看到的视图 制作望远镜的过程如下: (1)在Project视图里,创建一个C#脚本文件,命名为TelescopicView.打开这个脚本文件,并在里面添加下面的代码: 01     using UnityEngine

log4net 日志框架的配置

log4net 日志框架的配置(一) 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2.0,则应选择net 2.0版本的程序集 修改配置文件,配置log4net相关设置 在web.config或在app.config(如果没有则创建一个)中,配置log4net的使用 1 <?xml version="1.0"?> 2 3 <configuration> 4 &l

asp.net core 集成 log4net 日志框架

原文:asp.net core 集成 log4net 日志框架 asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 LoggerProvider 的话就需要借助第三方日志框架实现了,而一些第三方框架的实现大多比较完善和成熟,不失为一个好办法. 自己写了一个 log4net 的扩展 WeihanLi.Common.Logging.Log4Net,提供了在 .n