在 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。
我想构建一个将所有消息发送到中央 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 阅读如何在 运行.
过滤消息
如果您的框架具有唯一的记录器名称,您可以配置它的日志不会通过您的自定义附加程序传输。
要么完全关闭它:
<logger name="Framework.logger.name">
<level value="OFF" />
</logger>
或者通过您的自定义附加程序仅传输特定的记录器
<logger name="specific.logger.name">
<level value="ALL" />
<appender-ref ref="MyCustomAppender" />
</logger>
您可以阅读更多内容here。