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及源代码
Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器的更多相关文章
- SLF4J其实只是一个门面服务而已,他并不是真正的日志框架,真正的日志的输出相关的实现还是要依赖Log4j、logback等日志框架的。
小结: 1.加层: 每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,这就大大的增加应用程序代码对于日志框架的耦合性. 为了解决这个问题,就是在日志框架和应用程序之间架设一个 ...
- 使用FormatMessage函数编写一个内核错误码查看器
在编写驱动程序的时候,常用的一个结构是NTSTATUS,它来表示操作是否成功,但是对于失败的情况它的返回码过多,不可能记住所有的情况,应用层有一个GetLastError函数,根据这个函数的返回值可以 ...
- 什么?让每一个开源项目更安全?啊?还有IDE工具?难道是它?
背景 入编程界6年来,大大小小的安全漏洞是真滴听了不少,xxx通过日志入侵了,xxxx通过请求入侵了,等等等等. 近期fastJson又报安全漏洞,敢巧自己又"被"跳槽到了新公司, ...
- 推荐一个比HtmlWebpackPlugin更灵活的插件
插件:html-res-webpack-plugin https://github.com/lcxfs1991/html-res-webpack-plugin/blob/v3/README_ZH.md ...
- [.Net MVC] 使用 log4net 日志框架
项目:后台管理平台 意义:项目开发中提出增加日志功能,对关键的操作.程序运行中的错误信息进行记录,这对程序部署后的调试有很大意义. 注:本文只是对网上搜集的信息进行了整合,以备今后查询. 关键字:.N ...
- 一个简单好用的日志框架NLog
之前我介绍过如何使用log4net来记录日志,但最近喜欢上了另一个简单好用的日志框架NLog. 关于NLog和log4net的比较这里就不多讨论了,感兴趣的朋友可以参看.NET日志工具介绍和log4n ...
- 收藏收藏:时隔一年,你关注的打造一个实用的TXT文本操作及日志框架,我们开源了,不再为程序写日志发愁(也支持.net core哦)
记得做这个框架是在2018年刚接触.net core的时候,那个时候为了能够专心的研究我开始不写博客了,但是学有所成并在公司运用了近一年的时间了,决定回来和各位分享我们所掌握的那星星点点的知识,希望可 ...
- 如何创建一个简单的C++同步锁框架(译)
翻译自codeproject上面的一篇文章,题目是:如何创建一个简单的c++同步锁框架 目录 介绍 背景 临界区 & 互斥 & 信号 临界区 互斥 信号 更多信息 建立锁框架的目的 B ...
- 基于jQuery的一个简单的图片查看器
项目中自己diy了一个图片查看器.因为初始代码不是自己的,只是在上面改了一下也没有弄的很漂亮.等以后有时间了在重写一下样式和封装,作为备用的只是积累吧.如果有童鞋有用到,完全可以在此基础上改,比较容易 ...
随机推荐
- MVC+EF6使用MySQL+CodeFirst的详细配置
环境: WIN7(64位旗舰版)+VS2012+MySQL5.6(32位版,在另一台服务器中,环境是win2003) 1.下载并安装MysqlforVisualStudio.zip,此软件功能是让VS ...
- 升级AutoMapper后遇到的“Missing map”与“Missing type map configuration”问题
前几天发现 AutoMapper 3.3 的一个性能问题(详见:遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍),于是将 AutoMapper 升级至最新的 5.1.1 看是否 ...
- 《C#图解教程》读书笔记之一:C#和.NET框架
本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.在.NET之前的编程世界 C#语言是在微软公司的.NET框架上开发程序而设计的,首先作者给大家纠正了一下C# ...
- 那些VisualStudio隐藏的调试功能
VisualStudio是一个强大的调试工具,里面很多隐藏功能少有人问津,但是在特定场景可以节省你很多时间,本文主要介绍一些VisualStudio调试相关的隐藏功能,欢迎大家补充. 运行到指针(Ru ...
- [ZigBee] 1、 ZigBee简介
前言 目前,中国大力推广的物联网是zigbee 应用的主战场,物联网通过智能感知.识别技术与普适计算(我还特意申请了个域名psjs.vip).泛在网络的融合应用,被称为继计算机.互联网之后世界信息产业 ...
- Unity3D使用经验总结 缺点篇
不论是从官方手册,还是各种第三方教程,几乎涉及到的,都是讲如何使用U3D,以及U3D的优点. 虽然我是用的一个让步语气,但请不要否认U3D的这些优点,它们的确存在. 但对于一个引擎的特性来说,优点与缺 ...
- ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇
在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号.那么在本篇文章中,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Ide ...
- 如何应用Font Awesome矢量字体图标
Font Awesome 是一套专门为 Twitter Boostrap 设计的图标字体库.这套图标字体集几乎囊括了网页中可能用到的所有图标,除了包括 Twitter Boostrap 的默认图标外, ...
- Log4Net指南
英文好的直接看这里:http://www.codeproject.com/Articles/140911/log4net-Tutorial 介绍 log4net.是.NET下面最伟大的日志工具之一.简 ...
- 异步委托(APM)使用Func异步操作,处理耗时操作
使用委托进行异步操作,处理一些耗时操作,防止主线程阻塞 使用例子: using System; using System.Collections.Generic; using System.Linq; ...