【问题标题】:Enterprise Library Logging tracelistener extension issue with resolving ILogFormatter解决 ILogFormatter 的企业库日志记录跟踪侦听器扩展问题
【发布时间】:2011-06-17 06:12:24
【问题描述】:

我已经为一个问题坐了很长时间,但我似乎无法找到我缺少的东西。 我为 Enterprise Library 5.0 编写了一个自定义跟踪侦听器组件,用于 Logging 应用程序块,它可以工作,但配置的 ILogFormatter 无法解析,因此当我的组件处理它时,我总是以基本字符串文本结束。 我在企业库源代码中看到他们使用“Container.ResolvedIfNotNull()”方法。它似乎对我不起作用。我需要它写出一个自定义格式的字符串供我的组件使用。你知道的,不仅仅是消息,还有时间戳、机器名、线程 ID 等。

有人对如何解决这个问题有任何想法吗?

提前致谢。

【问题讨论】:

  • 忘了说我是在自己的新程序集中写的。这不是对 Entlib 源代码所做的更改。
  • 能否提供代码示例?特别是返回您的类型注册的方法?
  • 我不记得有类似的东西。你愿意解释一下吗?
  • 我也在 CodePlex 上开始了这个讨论:entlib.codeplex.com/discussions/261749
  • 已解决。检查上面的链接。

标签: enterprise-library containers trace-listener


【解决方案1】:

就像我在这个网站上提到的:http://entlib.codeplex.com/discussions/261749

当您在 TraceListener 数据类中创建 CreationExpression 时,请确保您有一个平面构造函数定义。换句话说,不要返回:

() => new MyTraceListener(new TraceListenerConfig(..., Container.ResolvedIfNotNull<ILogFormatter>(), ...));

把它放在MyTraceListener的构造函数中:

() => new MyTraceListener(..., Container.ResolvedIfNotNull<ILogFormatter>(), ...);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2012-02-24
    • 2017-03-06
    相关资源
    最近更新 更多