app.config(或 web.config)的 System.Diagnostic 部分允许指向外部文件,例如
<system.diagnostics configSource="system.diagnostics.config" />
据我所知,system.diagnostics 设置为只允许一个 system.diagnostics 部分,而不是两个合并的部分。使用 ad hoc 日志系统可能是可能的。(我假设这是关于 System.Diagnostic 的跟踪库,因为您有一个 TraceSource 标记。
因此,您将在库中附带一些具有不同侦听器场景的 .config 文件(可能是控制台跟踪或文件跟踪的预配置部分)。用户只需将 configSource 添加到他们的 app.config 即可查看跟踪,这是一个典型的场景 - 临时添加跟踪以处理特定问题。
如果库的使用者足够复杂,想要查看 3rd 方库的踪迹,他们可能也可以按照他们认为合适的方式配置自己的 system.dignostics 部分,您只需要以某种方式(通过文档)让用户知道您正在使用 System.Diagnostics 以及 TraceSource 名称是什么。
例如,.NET 框架在一些命名空间(System.ServiceModel 和 System.Networking)中使用 TraceSource,但除非您运行反编译器,否则您可能永远不会意识到此类跟踪存在并且可以由库用户激活。换句话说,库中的 System.Diagnostic 跟踪存在可发现性问题。