【发布时间】:2016-02-22 16:32:26
【问题描述】:
我正在将自制的日志系统转换为 NLog,我想知道是否有办法将事件添加到 Logger 或支持一种机制,当我记录消息时,我可以通过最终格式化的消息和 LogLevel。我目前使用这样的东西将服务器消息发送回连接的客户端。
谢谢
【问题讨论】:
-
您可以编写自己的日志目标。见github.com/NLog/NLog/wiki/Extending-NLog
-
谢谢艾米。我考虑过这一点,但 WCF 客户端上下文位于服务器中,因此无法用于自定义记录器目标。我需要获取刚刚写入任何返回到 Log 调用的目标的完全格式化的消息,或者一个告诉我消息是什么的记录器事件,以便我可以收集几个并发送给客户端或通过电子邮件。
-
您可以在自定义目标中轻松获取格式化消息。
Layout.Render(logEventInfo) -
谢谢朱利安。但是,由于没有与编写日志消息的服务器通信的上下文,我如何将格式化的消息返回给我的应用程序?我还积累了其中一些消息,以便能够发送包含任务所有日志记录的电子邮件,因此服务器需要写入日志的消息副本。
-
如何在服务器之间进行通信是一个单独的问题,超出了原始问题的范围。如果你想要回调能力,你需要编写一个自定义的 NLog 目标。