早晨看到TerryLee的文章《.NET开源项目介绍及资源推荐:日志记录》,其中说到NLog这个同样开源且非常不错的日志记录工具却没什么中文资料。在TerryLee介绍前,我也不知道NLog这个东西,于是就随便尝试了一下。
简单使用了一下之后,觉得NLog真的非常不错。如此漂亮的类库却没有中文资料,似乎有些可惜,于是尝试联系其作者Jaroslaw Kowalski请求翻译NLog网站中的一部分内容。没想到Jaroslaw Kowalski很快给我回了信表示同意,更巧的是居然我们还是同事!
文章目录
交流之后,我决定先从NLog网站的介绍文档开始,逐步翻译并介绍NLog的使用方法,直至最终推出NLog的中文版网站。接下来我也可能加入NLog开发团队,当然这是后话。在翻译的过程中,我会不断将译文发表至我的Blog之上,以下是我计划的文章列表(链接指向原英文页面,翻译过后将加入中文文章链接):
文档部分
- Tutorial(NLog文章系列——入门教程(上)、(中)、(下)) - NLog入门介绍
- Configuration File - (如何配置NLog )配置文件介绍
- Visual Studio Support - (与Visual Studio集成)Visual Studio中的snippets、智能感知等
- Performance - NLog的性能
参考部分
- Targets - 日志信息的输出目标
- Layouts - 日志信息的输出格式(纯文本、XML、CSV)
- Layout Renderers - 指定输出信息中包含的内容(日期、时间、类名、方法名……)
- Filters - 过滤输出信息
- Conditions - 过滤信息时用到的简单谓词语言
How to部分
- How to write your own Target - 如何编写自定义的输出目标(Target)
- How to write your own Layout Renderer - (如何写自定义布局生成器(Layout Renderer))
- How to write your own Filter - (如何编写自定义的过滤器(Filter) )
- How to write your own Condition Function - 如何编写自定义的条件函数(Condition Function)
- How to optimize logging performance -(如何优化日志性能 )
- How to troubleshoot your logging problems - (如何排错 )
NLog简要介绍
(以下内容原文来自NLog网站的首页:http://www.nlog-project.org/)
NLog是一个简单灵活的.NET日志记录类库。通过使用NLog,我们可以在任何一种.NET语言中输出带有上下文的(contextual information)调试诊断信息,根据喜好配置其表现样式之后发送到一个或多个输出目标(target)中。
NLog的API非常类似于log4net,且配置方式非常简单。NLog使用路由表(routing table)进行配置,但log4net却使用层次性的appender配置,这样就让NLog的配置文件非常容易阅读,并便于今后维护。
NLog遵从BSD license,即允许商业应用且完全开放源代码。任何人都可以免费使用并对其进行测试,然后通过邮件列表反馈问题以及建议。
NLog支持.NET、C/C++以及COM interop API,因此我们的程序、组件、包括用C++/COM 编写的遗留模块都可以通过同一个路由引擎将信息发送至NLog中。
NLog的.NET API的过滤信息功能执行效率很高,这样我们就可以一直保留程序中的日志写入代码,然后由NLog在运行时将其根据需要过滤掉。在一个1.6G单CPU笔记本电脑上,NLog每秒钟可以过滤掉1.5亿条日志写入语句!加上异步处理(asynchronous processing)以及其他包装程序(wrappers)的支持,NLog将成为一个极为强大的、且极具伸缩性的日志记录工具,