无论什么服务器环境,都需要准确记录日志。为了便于集中管理日志,应用程序通常会把日志记录到主机操作系统的中央日志系统上。对于 Windows 系统这指的是事件查看器(Event Viewer),而 Linux/UNIX 系统则是指 Syslog,这种状况已经持续了几十年。这种系统级的差异使得在异构环境下很难统一日志管理。正如其名字显示的那样, Syslog4net 为.NET 应用程序提供了一种简单的方式可以直接把日志记录到 Syslog 守护进程 。
Syslog4net 是 log4net 的一个插件,借助于该插件 log4net 能够创建出符合 RFC5424 标准的信息。虽然 log4net 现在可以把消息写入 Syslog 服务器,但是并不满足 Syslog4net 提供的标准格式。使用 RFC5424 标准可以提供更多的域,包括消息优先级,应用程序名称和多个主机间的主机名。该小组指出,除了这些域,Syslog4net 还可以用来记录异常。异常信息会被记录到 Syslog,而异常的全部细节(消息,堆栈跟踪等)则会被记录在本地。这保证了发生异常时不会出现日志溢出的情况。最后,Syslog4net 满足任何数据(键、值)记录的需求。
Syslog4net 由 Dominic Lachowicz 和 Joe Polino 编写,版权归 Merchant Warehouse LLC 所有。该项目是开源的,且在 Apache 许可下可用。项目文件托管在 GitHub 上,使用的语言是 C#。
查看英文原文: Integrating Windows Logging Through Linux With Syslog4NET
感谢孙镜涛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论