我正在修改传统的asp.net项目。我希望包含一些名称空间,类和方法的透明日志记录。
我使用EntLib。我可以配置警察注射设置来透明记录我的应用吗?我必须做什么来记录指定命名空间中的所有方法?
这是我的web.config的一部分。
<policyInjection>
<policies>
<add name="Policy">
<matchingRules>
<add type="Microsoft.Practices.EnterpriseLibrary.PolicyInjection.MatchingRules.NamespaceMatchingRule, Microsoft.Practices.EnterpriseLibrary.PolicyInjection, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Namespace Matching Rule">
<matches>
<add match="MyNamespace.*" ignoreCase="true" />
</matches>
</add>
</matchingRules>
<handlers>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.PolicyInjection.LogCallHandler, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
beforeMessage="+++AOP " afterMessage=" AOP+++" name="Logging Call Handler">
<categories>
<add name="General" />
</categories>
</add>
</handlers>
</add>
</policies>
答案 0 :(得分:0)
您是否使用Unity在MyNamespace中创建和注入类?如果是这样,请尝试在映射部分添加元素。
<type type="IMyService" mapTo="MyService">
<lifetime type="singleton"/>
<interceptor type="InterfaceInterceptor"/>
<policyInjection/>
</type>
您还需要添加此部分扩展注册:
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration"/>