首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在NHibernate中使用Enterprise Library日志应用程序块

在NHibernate中使用Enterprise Library日志应用程序块,可以通过以下步骤实现:

  1. 安装Enterprise Library日志应用程序块:

在项目中安装Enterprise Library日志应用程序块,可以使用NuGet包管理器。在包管理器控制台中输入以下命令:

代码语言:txt
复制

Install-Package EnterpriseLibrary.Logging

代码语言:txt
复制
  1. 配置Enterprise Library日志应用程序块:

在应用程序配置文件中添加Enterprise Library日志应用程序块的配置。配置示例如下:

代码语言:xml
复制

<configSections>

代码语言:txt
复制
 <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />

</configSections>

<loggingConfiguration name="Logging Application Block" tracingEnabled="true" defaultCategory="General">

代码语言:txt
复制
 <listeners>
代码语言:txt
复制
     <add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
代码语言:txt
复制
        listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
代码语言:txt
复制
        fileName="trace.log" formatter="Text Formatter" rollInterval="Day" />
代码语言:txt
复制
  </listeners>
代码语言:txt
复制
 <formatters>
代码语言:txt
复制
     <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
代码语言:txt
复制
        template="Timestamp: {timestamp}{newline}Message: {message}{newline}Category: {category}{newline}Priority: {priority}{newline}EventId: {eventid}{newline}Severity: {severity}{newline}Title:{title}{newline}Machine: {localMachine}{newline}App Domain: {localAppDomain}{newline}ProcessId: {localProcessId}{newline}Process Name: {localProcessName}{newline}Thread Name: {threadName}{newline}Win32 ThreadId:{win32ThreadId}{newline}Extended Properties: {dictionary({key} - {value}{newline})}"
代码语言:txt
复制
        name="Text Formatter" />
代码语言:txt
复制
  </formatters>
代码语言:txt
复制
 <categorySources>
代码语言:txt
复制
     <add switchValue="All" name="General">
代码语言:txt
复制
       <listeners>
代码语言:txt
复制
           <add name="Rolling Flat File Trace Listener" />
代码语言:txt
复制
        </listeners>
代码语言:txt
复制
     </add>
代码语言:txt
复制
  </categorySources>
代码语言:txt
复制
 <specialSources>
代码语言:txt
复制
     <allEvents switchValue="All" name="All Events" />
代码语言:txt
复制
     <notProcessed switchValue="All" name="Unprocessed Category" />
代码语言:txt
复制
    <errors switchValue="All" name="Logging Errors &amp; Warnings">
代码语言:txt
复制
       <listeners>
代码语言:txt
复制
           <add name="Rolling Flat File Trace Listener" />
代码语言:txt
复制
        </listeners>
代码语言:txt
复制
     </errors>
代码语言:txt
复制
  </specialSources>

</loggingConfiguration>

代码语言:txt
复制
  1. 在NHibernate中使用Enterprise Library日志应用程序块:

在NHibernate中使用Enterprise Library日志应用程序块,需要创建一个实现ILogger接口的类,并在该类中使用Enterprise Library日志应用程序块记录日志。示例代码如下:

代码语言:csharp
复制

using System;

using System.Diagnostics;

using Microsoft.Practices.EnterpriseLibrary.Logging;

using NHibernate.Cfg;

using NHibernate.Tool.hbm2ddl;

public class NHibernateLogger : ILogger

{

代码语言:txt
复制
  private readonly LogWriter _logWriter;
代码语言:txt
复制
  public NHibernateLogger()
代码语言:txt
复制
  {
代码语言:txt
复制
     _logWriter = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
代码语言:txt
复制
  }
代码语言:txt
复制
  public void Log(NHibernate.Log.NHibernateLogLevel logLevel, string message)
代码语言:txt
复制
  {
代码语言:txt
复制
     if (logLevel == NHibernate.Log.NHibernateLogLevel.Error || logLevel == NHibernate.Log.NHibernateLogLevel.Fatal)
代码语言:txt
复制
     {
代码语言:txt
复制
        _logWriter.Write(message, "NHibernate", TraceEventType.Error);
代码语言:txt
复制
     }
代码语言:txt
复制
     else if (logLevel == NHibernate.Log.NHibernateLogLevel.Warn)
代码语言:txt
复制
     {
代码语言:txt
复制
        _logWriter.Write(message, "NHibernate", TraceEventType.Warning);
代码语言:txt
复制
     }
代码语言:txt
复制
     else if (logLevel == NHibernate.Log.NHibernateLogLevel.Info)
代码语言:txt
复制
     {
代码语言:txt
复制
        _logWriter.Write(message, "NHibernate", TraceEventType.Information);
代码语言:txt
复制
     }
代码语言:txt
复制
     else if (logLevel == NHibernate.Log.NHibernateLogLevel.Debug)
代码语言:txt
复制
     {
代码语言:txt
复制
        _logWriter.Write(message, "NHibernate", TraceEventType.Verbose);
代码语言:txt
复制
     }
代码语言:txt
复制
  }
代码语言:txt
复制
  public bool IsEnabled(NHibernate.Log.NHibernateLogLevel logLevel)
代码语言:txt
复制
  {
代码语言:txt
复制
     return true;
代码语言:txt
复制
  }

}

代码语言:txt
复制

在NHibernate的配置文件中,将日志记录器设置为使用刚刚创建的NHibernateLogger类。示例代码如下:

代码语言:csharp
复制

var configuration = new Configuration();

configuration.Configure();

configuration.SetProperty(NHibernate.Cfg.Environment.ShowSql, "true");

configuration.SetProperty(NHibernate.Cfg.Environment.FormatSql, "true");

configuration.SetProperty(NHibernate.Cfg.Environment.UseOuterJoin, "true");

configuration.SetProperty(NHibernate.Cfg.Environment.Log, "NHibernateLogger");

代码语言:txt
复制

这样,NHibernate中的日志记录就会使用Enterprise Library日志

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Enterprise Library 4.0缓存应用程序

英文原文:http://msdn.microsoft.com/zh-cn/library/cc511588(en-us).aspx Enterprise Library 缓存应用程序允许开发人员应用程序合并一个局部缓存...Enterprise Library 缓存的应用程序包括以下特性: 您可以使用图形化的Enterprise Library 配置工具来管理配置。...您可以设置一个持久的存储位置,使用隔离存储或Enterprise Library 数据访问的应用程序,其状态是与在内存缓存同步的。 您可以扩展应用程序,通过由创建自定义到期的政策和存储位置。...此外,缓存应用程序提供了一个与其他Enterprise Library的应用应用程序一样的一致的开发模式。 缓存的应用程序与数据访问的应用程序为后端存储的功能无缝集成。...相同的方式,安全应用程序,包括缓存的应用程序所提供的缓存的能力。开发人员和操作人员使用使用Enterprise Library配置工具配置的应用应用程序

98180

Enterprise Library 4 数据访问应用程序

Enterprise Library 数据访问应用程序简化了实现常规数据访问功能的开发任务。...使用数据访问应用程序开发应用程序 首先解释了如何配置应用程序并将它添加到应用程序。然后,关键场景,解释了如何在特定场景中使用应用程序,例如获取单个项或者使用 DataSet 对象获取多行。...单击省略号按钮(...)并使用'Type Selector 选择 Enterprise Library 数据库类型的全名称。...可以手工编辑 XML 数据,但 Enterprise Library 极大的简化了此任务。如果选择手工编辑 XML ,则要使用包含在本主题中的模式信息。...在要使用Enterprise Library 支持的保存在某个位置的配置信息时或者使用由 ADO.NET 管理的连接字符串时使用工厂。

1.7K60

Enterprise Library 4 缓存应用程序的设计

Enterprise Library 配置控制台来简化配置。 有效率的执行。 线程安全。某些东西在被多个程序线程调用而没有属于那些线程的不必要的交互时,它被视为是线程安全的。...设计亮点 图 1 说明了缓存应用程序关键类的相互关系。 ?...它被存储哈希表。Cache 对象还使用一个同步的哈希表来控制应用程序和 BackgroundScheduler 对缓存条目的访问。Cache 对象为整个缓存应用程序提供了线程安全。...DataBackingStore 类在后端存储是数据访问应用程序时被使用。用配置控制台配置它使用一个命名的数据库实例。...使用配置控制台配置一个 CacheManager 实例时可以控制过期周期发生的频率。 缓存应用程序提供了四个过期策略: · 绝对时间(Absolute)。这意味着条目特定的时间过期。

90360

替换EnterPrise Library 4.0 缓存应用程序的CacheManager

缓存是用来提高应用程序性能的常见技术,其实现方式是将常用数据从慢数据源复制到更快的数据源。对于数据驱动的应用程序来说,该技术通常需要将从数据库或 Web 服务检索到的数据缓存到本地计算机的内存。...当缓存特定于每个应用程序时最容易实现缓存技术,但是如果多个应用程序需要使用一个公共缓存,那么问题将变得更具挑战性。例如,大型网站通常使用服务器场,其中包含多个提供相同内容的计算机。...定义缓存群集时,您可以指定是应复制群集内的缓存还是应对其进行分区。复制的缓存群集所拥有的缓存内容与群集中每台机器上的内容均相同。...NCache 还提供了集成到 Microsoft 缓存应用程序 (CAB) 的提供程序。...三方整合 NHibernate Level-2 Cache Provider. Caching Application Block (CAB). TierDeveloper.

71170

Enterprise Library 4.1学习笔记7----缓存应用程序之SqlDependency

本文是Artech“[原创]Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步”的基础之上,将其示例移植到webform...环境而已,详细原理还请大家见Artech的文章  应用场景:利用Enlib4.1的缓存模块,实现常用数据的缓存,同时借助SqlDependency通过"监控数据是否有改动"来决定缓存是不是过期。...[UserID]='JIMMY'的数据,如果首次打开页面时,直接从数据库取数据,然后刷新一下,从Sql监视器能看到此时并没有提交查询语句,即直接从缓存读取数据。...然后在数据库,直接UserID='JIMMY'的记录(比如修改Message字段值),再次刷新页面,会发现重新向数据库提交了查询语句(即更新了缓存),然后再次刷新,直接从缓存读取。...最后在数据库,修改UserID'JIMMY'的记录,再次刷新页面,还是从缓存数据(即修改UserID不为JIMMY的记录,不会触发SqlDependency的OnChange事件,缓存未过期)

567100

Enterprise Library简介

Enterprise Library 3.1(截止2008年6月的最新版本为3.1,4.0正在开发) 发行包含下列程序: 缓存应用程序。...开发人员可以使用这个应用程序应用程序中加入标准数据库功能。 异常处理应用程序。开发人员和决策者可以使用这个应用程序创建一个处理发生穿过企业应用架构层异常的固定策略。 日志应用程序。...开发人员可以使用这个应用程序应用程序包含标准的日志功能。 安全应用程序。开发人员可以使用这个应用程序应用程序中加入授权和安全缓存功能。 验证应用程序。...Enterprise Library系列课程(3):数据访问应用程序   Enterprise Library系列课程(4):安全应用程序库   Enterprise Library系列课程(5):日志和监测应用程序...own application block   微软经典案例系列课程(5):企业库企业应用程序设计的应用   组合界面应用程序 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

67610

Enterprise Library 3.1 介绍「建议收藏」

某些情况下,应用程序也加入了不直接受基本类库支持的功能。 目标 Enterprise Library 是一个为了由创建复杂企业级应用的开发人员使用应用程序的集合。...还有数据访问应用程序日志应用程序功能的增加。下面各节将讨论这些和其他在这个发行的变化。...单独的应用程序的改变 单独的应用程序的重要改变交以下节描述。它们讨论了数据访问、异常处理和日志应用程序的改变。...策略注入应用程序提供了一个 ready-built 解决方案,它易于新的或已存在的应用程序实现,特别是已利用 Enterprise Library 的应用。...它与这些应用程序的预构建处理程序一起加快使用 Enterprise Library 时的开发,同时帮助管理横切关系。

76120

Enterprise Library 4.0

开发人员可以使用这个程序应用程序应用缓存. 支持可插拔的缓存提供者(Provider)。 Cryptography Application Block ....开发人员可以使用这个应用程序应用中提供拦截策略,可以用它来简化整个系统的通用功能的实现,例如日志记录,缓存,异常处理以及验证。 Security Application Block ....开发人员可以使用应用程序为他们的应用层的业务对象创建验证规则,可以应用程序的各个层里面使用Enterprise Library 4.0有什么新特性?...日志应用程序快速入门 策略注入应用程序快速入门 Unity 应用程序快速入门 验证应用程序快速入门 Enterprise Library 4.0可以从模式与实践开发者中心下载。...但是Unity应用程序Enterprise Library所包含的其他几个应用程序几个方面是不一样的: 你可以单独使用Unity应用程序的依赖注入机制而不需要安装Enterprise Library

45630

c# 常用框架整理

该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中。...话说,这个ORM,博主自己也一直使用,确实十分强悍,至少性能方面,恐怕.NET里面的大多数ORM只能是望其项背了。...Enterprise Library https://entlib.codeplex.com/ Enterprise Library for .Net Framework 3.5 – EntLib v4.1...因此对于那些 基于.NET的中间层的应用,它们实现面向对象的业务模型和商业逻辑的应用,NHibernate是最有用的。...FileHelpers Library FileHelpers Library是一款C#编写的开源 .NET 类库。它使用简单,很容易就可以从固定长度文件或界定记录(CSV)读/写数据。

4.7K10

基于.NET平台常用的框架整理

持续更新 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,工作和学习也积累了一些开源的组件,就目前想到的先整理于此,如果再想到...Enterprise Library Log Application Black:微软企业库日志记录。 Elmah:实现最流行的ASP.NET应用异常日志记录框架。...NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。...ExposedObject:类的外部通过动态语言dynamic的方式访问私有成员。 PrivateObject:微软单元测试框架便捷在外部调用类内部私有成员的一个类。...NOPI.dll:导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式) Enterprise Library:微软针对企业级应用开发的最佳实践组件。

3K20

Smart Client Software Factory 初试

该软件工厂项目就是智能客户端应用程序的基础上的复合用户界面应用程序。通过使用软件工厂,建筑师和开发人员可以集中更多的精力在业务需求上面。...异常处理 Enterprise Library Branch Client reference implementation Yes 日志处理...日志处理 Enterprise Library Branch Client reference implementation Yes Demo...完成此实验室,你将能够: 使用智能客户端工厂创建一个智能客户端应用程序解决方案 明白解决方案的这些组件的用处 自定义UI布局 揭露用户界面元素的外壳到其他应用组件...Infrastructure.Module:这个项目是一个综合的用户界面模块,共享整个智能客户端的应用程序,当你创建这个模块的时候会在相应的配置目录下注册,也就是说会在应用程序启动的时候加载这些模块并使用

1.3K60

集中日志查询平台方案(Draft)

方案介绍 本方案使用微软企业库日志应用程序(以下称Logging application block),实现对每个系统的日志采集,通过MSMQ的发式发送到一个功能平台,公共平台利用企业库提供的MSMQ...Distributor服务收集到业务系统的日志后保存到SQL数据库,系统维护人员使用IE进行浏览和跟踪问题。...图表 1 方案的优势 Logging application block是微软patterns & practices Team发布的一个应用程序,是一个经过实践检验的产品 使用logging...对于企业端传输的配置 Category Source(分类)名称统一使用CTS,同时使用Msmq TraceListener将日志发送到平台,和使用EventLog TraceListener写入本地的系统事件日志...注册服务 打开Visual Studio命令行工具,切换到目录(默认的企业库安装路径)C:\Program Files\Microsoft Enterprise Library 4.0

88440

基于.NET平台常用的框架整理

自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,工作和学习也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志...Enterprise Library Log Application Black:微软企业库日志记录。 Elmah:实现最流行的ASP.NET应用异常日志记录框架。...NOPI.dll:导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式) Enterprise Library:微软针对企业级应用开发的最佳实践组件。...你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果宕机,数据将会丢失。...其中,Twitter的Storm 0.9.0以前的版本默认使用ZeroMQ作为数据流的传输(Storm从0.9版本开始同时支持ZeroMQ和Netty作为传输模块)。

1.8K30

分布式缓存redis_rocksdb 分布式缓存

windowsserver/ee695849(en-us).aspx 高可用性(Windows Server AppFabric 缓存) http://msdn.microsoft.com/zh-cn/library.../ee790974.aspx www.nhibernate.org 去看NHIBERNATE的一些文档,中文资料博客堂http://blog.joycode.com/ 、博客园http://www.cnblogs.com...缓存客户端安全设置 与缓存群集安全设置一样,缓存客户端可以使用 securityProperties 元素应用程序配置文件配置安全设置。...有关详细信息,请参阅应用程序配置设置(Windows Server AppFabric 缓存)。 缓存客户端和缓存群集使用启用连接的安全设置,这一点非常重要。...在下表,列代表服务器安全设置,行代表客户端安全设置。每个组合列出“Pass”或“Fail”,取决于是否允许连接。

66710
领券