C#库的可选日志依赖性?

cdm*_*kay 4 .net c# logging log4net

我一直在使用C#中的库,并希望提供自动记录所有异常的功能.理想情况下,我希望它使用log4net,从而允许客户端配置他们喜欢的日志(即他们可以将其重定向到EventLog或数据库或者你有什么).

但是,如果他们选择不使用日志记录功能,我希望避免使用日志记录依赖项.这可行吗?

换句话说,有没有办法我可以选择具有log4net依赖关系,具体取决于客户端在配置文件中设置的内容?

Mar*_*ark 11

显而易见的答案是使用System.Diagnostics.Trace带有自定义的子系统TraceSource.这样,您可以在配置文件中设置任何TraceListener您喜欢的内容,包括log4net,EventLog,文本文件Console或XML文件.

如果你添加了一个log4net,TraceListener那么依赖项将在运行时加载,而不是编译.Trace子系统从一开始就变得非常强大,我建议你研究一下.