gpt4 book ai didi

c# - 具有共享 web.config 日志记录的多个 Web 服务使用 Ent Lib 分离平面文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:08 24 4
gpt4 key购买 nike

我正在做一个项目,我需要使用 Enterprise Library v.3.1.1.0 日志 block (希望它是 log4net 或 nlog,但我别无选择)。我们有一个 IIS 应用程序,其中托管了多个 WCF web 服务,并且它们共享一个 web.config 文件。这也是我无权改变的。

这些服务之前都没有实现任何日志记录。

因此,使用 Ent Lib Config 实用程序设置滚动平面文件监听器并以我想要的方式记录到文本文件非常简单。我遇到的问题是正确配置它,因此每个服务都可以有自己单独的日志文件,同时它们仍然共享相同的 web.config。

我已经学习了几个教程,但我不了解如何执行此操作。

有什么建议吗?

最佳答案

web.config 中的配置是静态的,因此每个配置的跟踪监听器都有一个文件。实现每个服务一个文件的一种方法是让每个服务记录到不同的类别,并且每个类别使用不同的跟踪监听器。这甚至可以通过编程方式完成,以便服务可以在运行时添加自己的跟踪监听器,尽管这比手动更新配置文件要高级一些(例如,确保只添加一次服务,并确保在更新配置时它是线程安全)。

Enterprise Library 没有任何类似于 log4net 的分层记录器的东西,因此没有开箱即用的方法来使用反射来根据原始类路由日志消息。这可能是可能的,但你将不得不编写一些代码。您可以编写一个 Logger 外观类来根据调用者命名空间设置类别。 (另请注意,没有像 log4net 那样的命名空间通配符匹配。)

关于c# - 具有共享 web.config 日志记录的多个 Web 服务使用 Ent Lib 分离平面文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com