作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 Prism 2.1 转换为 Prism 4,我需要为 Log4Net 编写一个 ILoggerFacade 类。我来自 Prism 2.1 的旧代码不再有效。有没有人愿意分享 ILoggerFacade 类的示例代码?谢谢你的帮助。
最佳答案
我想到了。与 Prism 2 非常相似。首先,创建一个实现 ILoggerFacade 的自定义记录器类。这是我的课:
using log4net;
using Microsoft.Practices.Prism.Logging;
namespace FsNoteMaster3
{
class Log4NetLogger : ILoggerFacade
{
#region Fields
// Member variables
private readonly ILog m_Logger = LogManager.GetLogger(typeof(Log4NetLogger));
#endregion
#region ILoggerFacade Members
/// <summary>
/// Writes a log message.
/// </summary>
/// <param name="message">The message to write.</param>
/// <param name="category">The message category.</param>
/// <param name="priority">Not used by Log4Net; pass Priority.None.</param>
public void Log(string message, Category category, Priority priority)
{
switch (category)
{
case Category.Debug:
m_Logger.Debug(message);
break;
case Category.Warn:
m_Logger.Warn(message);
break;
case Category.Exception:
m_Logger.Error(message);
break;
case Category.Info:
m_Logger.Info(message);
break;
}
}
#endregion
}
}
CreateLogger()
返回自定义记录器类的新实例的方法:
protected override Microsoft.Practices.Prism.Logging.ILoggerFacade CreateLogger()
{
return new Log4NetLogger();
}
ILog
是 Log4Net 接口(interface),
LogManager
是一个 Log4Net 对象。
ServiceLocator
具有与容器无关的优势,这意味着底层容器并不重要。以下是使用 ServiceLocator 解析记录器的示例:
var logger = (Log4NetLogger)ServiceLocator.Current.GetInstance(typeof(ILoggerFacade));
logger.Log("App.OnStartup() completed", Category.Info ,Priority.None);
ServiceLocator
要求宿主项目具有对 Microsoft.Practices.ServiceLocation.dll 的引用和匹配的
using
陈述。
关于log4net - 用于 Log4Net 的 Prism 4 ILoggerFacade?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786222/
我正在尝试在我的新 WPF 4.5 CompositeWPF (Prism) 项目中实现日志记录功能。这需要我在我的代码中实现 ILoggerFacade。该接口(interface)只实现了1个方法
我正在从 Prism 2.1 转换为 Prism 4,我需要为 Log4Net 编写一个 ILoggerFacade 类。我来自 Prism 2.1 的旧代码不再有效。有没有人愿意分享 ILogger
我是一名优秀的程序员,十分优秀!