Castle:如何在日志拦截器中获取正确的 ILogger?

2024-02-05

如果您在温莎城堡中使用 LoggingFacility,如果您的类中有可选的记录器依赖项(城堡可以将记录器注入其中的 ILogger 属性),容器将自动解析与您的类关联的记录器,但是如果我想使用AOP(拦截器方法)来实现日志记录?我基本上想写这样的东西:

    public void Intercept(IInvocation invocation)
    {
        ILogger logger = LogManager.GetLogger(invocation.TargetType);
        //..
    }

但Castle框架中没有LogManager可言。解决这个问题的最佳方法是什么?我应该忽略工具方法并直接在拦截器中使用 log4net 吗?


在构造函数中依赖 Castle.Core.Logging.ILoggerFactory 并在 Intercept 方法中从工厂创建记录器

public class LoggingInterceptor : IInterceptor
{
    readonly ILoggingFactory loggingFactory;

    public LoggingInterceptor(ILoggingFactory loggingFactory)
    {
        this.loggingFactory = loggingFactory;
    }

    public void Intercept(IInvocation invocation)
    {
        ILogger logger = loggingFactory.Create(invocation.TargetType);
        //..
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Castle:如何在日志拦截器中获取正确的 ILogger? 的相关文章

随机推荐

  • Ruby:Proc#call 与 Yield

    以下两个 Ruby 实现之间的行为差 异是什么thrice method module WithYield def self thrice 3 times yield yield to the implicit block argument
  • 将日期 dd/mm/yyyy 格式从表单转换为时间戳?

    我有一份表格 要求填写日期dd mm yyyy格式 我尝试将其转换为时间戳strtotime 功能 但我发现只有当您在表格中填写日期时 它才有效dd mm yyyy 我该如何解决 我不知道国外的情况 但在意大利没有人这样写日期dd mm y
  • 如何获取recyclerview Item位置的文档id?

    我正在使用firebaseUI使用库来填充回收器视图firestore数据库 当我尝试检索时文档编号当我点击回收器查看项目时 它是这样的 DocumentSnapshot snapshot getSnapshots getSnapshot
  • 如何使用curl 访问IBM 语音转文本API?

    我无法使用curl 访问IBM Bluemix 上的语音转文本API 我尝试了文档中使用curl进行无会话请求的示例 但它不起作用 我收到无效的用户 ID 密码消息 这是我得到的错误 代码 401 错误 未授权 描述 2016 10 08T
  • 如何获取MemberInfo的值?

    我如何获得 a 的值MemberInfo目的 Name返回变量的名称 但我需要该值 我认为你可以这样做FieldInfo但我没有代码片段 如果你知道如何做到这一点 你可以提供一个代码片段吗 Thanks 虽然我总体上同意 Marc 关于不反
  • 数据导入期间超出 Fuseki GC 开销限制

    我正在尝试在启动时将 LinkedMDB 610 万个三元组 导入到我的本地版本的 jena fuseki 中 path to fuseki server file path to linkedmdb nt ds 它运行了一分钟 然后因以下
  • Java:字符串分割

    我有以下字符串 Mr John Smith Dickson lt email protected cdn cgi l email protection gt 我想把它分成三个部分 第1部分 先生第二部分 约翰 史密斯 迪克森第三部分 电子邮
  • 找出特定整数有多少个二进制数字[重复]

    这个问题在这里已经有答案了 可能的重复 计算快速对数以 2 为底的上限 https stackoverflow com questions 3272424 compute fast log base 2 ceiling 在 C C 中 找出
  • 页面性能:从 CDN 加载多个库脚本或将这些库组合并缩小为从服务器下载的一个文件?

    我了解从 CDN 加载 jQuery 等大型通用库的优势 但是较小的插件和库帮助程序 例如 jQuery ui 或 bootstrap 及其帮助程序 又如何呢 我的网站大约有 10 12 个 我是否应该从 cdnjs 中单独选择它们并获得
  • 在 erb 模板中嵌入 ejs 模板

    我正在构建一个 javascript 重的 Rails 3 应用程序 它使用 underscore js 它具有构建在 ejs 之上的非常优雅的模板机制 http embeddedjs com http embeddedjs com 问题
  • Flex:在动作脚本中实现经典的柯里函数?

    在 ActionScript 中以良好的语法实现经典柯里化函数的最佳方法是什么 我试过了 Function prototype curry function return helloWorld trace function void cur
  • VBA 中的 Powerpoint 幻灯片计数变量

    我正在用 vba 创建一个 Powerpoint 我的计划是设置代码 使每个子例程创建特定的幻灯片 但是 我需要将幻灯片编号传递给每个子例程 以便它在正确的位置创建正确的幻灯片 我无法定义 excel vba 中的 Slides Count
  • 在Python中通过FTP代理与ftplib连接?

    我正在尝试从 FTP 下载文件 在家里工作正常 但是当我通过公司网络运行时就无法工作 我知道与代理有关 我看过一些关于 Python 中代理问题的帖子 我尝试建立与代理的连接 url 工作正常 但连接 FTP 时失败 有谁知道如何做到这一点
  • 如何在Docker中支持组播网络

    我在docker中遇到了一个关于网络配置的大问题 情况是这样的 1 我的服务器上有两个 eth eth0 和 eth1 eth0 flags 4163
  • Datareader 在 VS 中没有返回结果,但存储过程在 Sql Server 中返回多个结果集

    我在 Visual Studio 2008 中从数据读取器检索结果时遇到问题 我在同一个数据库中有多个存储过程 我能够从那些不接收输入参数的值中检索值 但是 当我在带有输入参数的存储过程上使用 executreReader 方法时 我得到一
  • MySQL IN 子句是否多次执行子查询?

    给定 MySQL 中的 SQL 查询 SELECT FROM tableA WHERE tableA id IN SELECT id FROM tableB MySQL是否执行子查询SELECT id FROM tableB每行多次tabl
  • 有关 OpenCL 内核编程的教程或书籍? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我认为这个问题足够具体 只是为了说清楚 我不是在寻找参考 而是在寻找教程 我对内核编程方面特别感兴趣 市
  • 如何修复因字节计数长度不正确而损坏的序列化字符串?

    我使用 Hotaru CMS 和图像上传插件 如果我尝试将图像附加到帖子中 则会收到此错误 否则不会出现错误 unserialize function unserialize 偏移处错误 有问题的代码 错误点与 一致 Retrieve su
  • i18next 显示键而不是值

    I have translation json文件输入 locales en app name Example App In html 我有 a href In js document ready function var language
  • Castle:如何在日志拦截器中获取正确的 ILogger?

    如果您在温莎城堡中使用 LoggingFacility 如果您的类中有可选的记录器依赖项 城堡可以将记录器注入其中的 ILogger 属性 容器将自动解析与您的类关联的记录器 但是如果我想使用AOP 拦截器方法 来实现日志记录 我基本上想写