NLog:创建程序或服务日志

本文关键字:服务 日志 程序 创建 NLog | 更新日期: 2023-09-27 17:55:15

我已经使用 NLog 几个月了,只是记录到事件日志,但是恕我直言,这在任何情况下都不是理想的。

我想知道,是否可以使用 NLog 创建自己的程序或服务日志?根据支持的目标列表,似乎不像 http://nlog-project.org/wiki/Targets

有人能够对此有所了解吗?

NLog:创建程序或服务日志

您完全可以创建一个应用程序来存储和显示其他应用程序的所有日志,但您可能需要扩展 NLog,这就是我为我的工作场所所做的。例如:

  1. 创建一个通用数据库,如果需要,该数据库可以存储来自 NLog 的所有日志和其他类型的日志。

  2. 制作
  3. 一个自定义布局渲染器,它使用您的日志信息创建XML(我在制作系统时不尝试XmlEncode LayoutRenderer,我认为它现在会很棒)

  4. 找到一种通过网络发送XML的方法,我使用了事务性MSMQ,但NLog中仅存在非事务性目标,因此我创建了(=复制粘贴原始目标并进行一些增强)我自己的目标

  5. 创建接收日志 XML 并将其插入数据库的服务

  6. 最后,创建一个应用程序,该应用程序使用数据库向您显示环境中发生的事情

如果您有时间,这是一个强大的解决方案。对于我们的生产环境,它为我们节省了很多倍。但这取决于你到底需要什么

*

编辑 2013-01-25 : *

对于在应用程序和服务日志树中创建自己的日志:请参阅这篇文章,其中解释了如何创建自己的日志以及随之而来的事件源

如果Nlog不存在,他也可以创建一个事件源,但正如你在这篇文章中看到的那样,应用程序需要密钥的读取权限:

HKEY_LOCAL_MACHINE''系统''当前控制集''服务''事件日志''安全性

或者,您可以简单地以管理员身份运行应用程序。

一旦你创建了自己的日志和他的事件源,你现在可以正常使用Nlog,配置如下:

<targets>
  <target xsi:type="EventLog" name="event" layout="${message}"
          machineName="." log="myLog" source="myEventSource"/>
</targets>
<rules>
  <logger name="myLogger" writeTo="event"/>
</rules>

希望对你有帮助