2

我有一个使用 Common.Logging 的库。当对它的日志进行任何写入时,我需要调用我的代码。

4

3 回答 3

2

如果您不想更改任何内容,则可以使用 AOP 拦截对 Common.Logging 的方法调用,但请记住 AOP 会在后台添加大量开销,因为它会在运行时注入代码。否则,您可以包装/扩展Common.Loggin 并创建您自己的 Write 方法,该方法调用将指向您要执行的代码的委托(回调类型)

于 2011-05-27T10:54:05.567 回答
1

如果你的日志被设计成一个接口,你可以使用装饰器模式来创建新的日志,它将在内部调用原始日志。

然后您可以针对您拥有的 ILogging(通过依赖注入)注册您的新 DecoratorLogging,这样 ILogging 的任何消费者都不会知道他们实际上正在使用您的新记录器:)

于 2011-05-27T11:00:09.363 回答
0

将我自己的适配器设置为 LogManager.Adapter 工作正常。

于 2011-06-03T06:06:04.217 回答