在 log4net appender 中支持记录 类?

Logging classes supported inside a log4net appender?

我想构建一个将所有消息发送到中央 tcp 服务器的附加程序。但是,我想为此使用的消息传递框架使用 log4net 记录器实例本身来支持调试/跟踪。因此,激活一个协议化所有将要发送的消息的调试日志似乎有问题,因为此调试消息本身会创建另一条相同类型的消息。

是否有 log4net 保护来防止 name of this web site 情况?

消息传递框架是你自己写的吗?如果真的有trace message的时候,framework一直在添加trace messages,那用处不大,即使你自己没有用log4net。我想该框架不会添加自行触发的跟踪消息。您知道的唯一方法是测试框架并查看它是否正常工作。或者 post 创建循环的代码。

据我了解:您正在自定义附加程序中使用 class 或框架,它本身使用 log4net 来写入日志,并且您希望在通过附加程序传输这些日志时避免循环。

我可以想到两种可以帮助您避免这种情况的方法:

  • 使用LogLog机制
  • 过滤来自您的框架的消息

使用LogLog

仅当您有权访问您的框架代码时:

您可以更改通过配置获取的代码是使用 log4net 常规记录器还是 LogLog 记录器。

通过 LogLog 登录是这样完成的:

log4net.Util.LogLog.Error(this.GetType(), "your error here");

使用 this link 阅读有关 LogLog 的更多信息。
使用 this link 阅读如何在 运行.

时启用 LogLog

过滤消息

如果您的框架具有唯一的记录器名称,您可以配置它的日志不会通过您的自定义附加程序传输。

要么完全关闭它:

<logger name="Framework.logger.name">
    <level value="OFF" />
</logger>

或者通过您的自定义附加程序仅传输特定的记录器

<logger name="specific.logger.name">
    <level value="ALL" />
    <appender-ref ref="MyCustomAppender" />
</logger>

您可以阅读更多内容here