我有一个使用Common.Logging的库。我需要在对其日志进行任何写入时调用我的代码。
答案 0 :(得分:2)
如果您不想更改任何内容,可以使用AOP拦截对Common.Logging的方法调用,但请记住AOP会在运行时注入代码的场景后面添加大量开销。否则您可以包装/扩展Common.Loggin并创建自己的Write方法,该方法调用将指向您要执行的代码的委托(回调类型)
答案 1 :(得分:1)
如果您的日志记录是针对接口设计的,则可以使用Decorator模式创建新的Logging,它将在内部调用原始Logging。
然后你可以注册新的DecoratorLogging以防止ILogging(通过依赖注入),以便ILogging的任何消费者都不会知道他们实际上正在使用你的新记录器:)
答案 2 :(得分:0)
将我自己的适配器设置为LogManager.Adapter工作正常。