asp.net-mvc – 为什么log4net不记录nhibernate信息
发布时间:2020-12-16 06:45:07 所属栏目:asp.Net 来源:网络整理
导读:我的Visual Studio解决方案包含: [DLL] Sol.DataAccess(NHibernate sessionManager) [DLL] Sol.Core(模型和存储库) [MVC] Sol.WebMvc(Controler,View) 我的所有应用程序都包含(nhibernate.dll [v3.0]和log4net.dll [v1.2.10]) 我有3个配置: web.config中:
我的Visual Studio解决方案包含:
> [DLL] Sol.DataAccess(NHibernate sessionManager) 我的所有应用程序都包含(nhibernate.dll [v3.0]和log4net.dll [v1.2.10]) 我有3个配置: web.config中: <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net,Version=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821" requirePermission="false" /> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate"/> </configSections> </configuration> nhibernate.config: <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > <session-factory name="..."> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string_name">...</property> <property name="adonet.batch_size">10</property> <property name="show_sql">true</property> <property name="generate_statistics">true</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="use_outer_join">true</property> <property name="max_fetch_depth">2</property> <property name="command_timeout">60</property> <property name="adonet.batch_size">25</property> <property name="query.substitutions">true 1,false 0,yes 'Y',no 'N'</property> <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle</property> <property name="current_session_context_class">web</property> <property name="cache.use_query_cache">true</property> <property name="cache.provider_class">NHibernate.Caches.SysCache2.SysCacheProvider,NHibernate.Caches.SysCache2</property> <mapping assembly="..."/> </session-factory> </hibernate-configuration> 和log4net.config: <log4net> <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> <!--for release--> <!--<bufferSize value="10" />--> <!--for debug--> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection,System.Data,Version=1.0.3300.0,PublicKeyToken=b77a5c561934e089" /> <connectionString value="Data Source=xxxxx; Initial Catalog=xxxx; User Id=xxxx; Password=xxxxx; App=xxxx" /> <commandText value="INSERT INTO Logs ([Application],[Host],[User],[Date],[Thread],[Level],[Operation],[Logger],[Message],[Exception]) VALUES (@app,@hostName,@userName,@log_date,@thread,@log_level,@operation,@logger,@message,@exception)" /> <parameter> <parameterName value="@app" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="xxxx" /> </layout> </parameter> <parameter> <parameterName value="@hostName" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%property{hostName}" /> </layout> </parameter> <parameter> <parameterName value="@userName" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%property{userName}" /> </layout> </parameter> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@log_level" /> <dbType value="String" /> <size value="50" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@operation" /> <dbType value="String" /> <size value="50" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%property{Operation}" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> <parameter> <parameterName value="@exception" /> <dbType value="String" /> <size value="2000" /> <layout type="log4net.Layout.ExceptionLayout" /> </parameter> </appender> <appender name="FileAppender" type="log4net.Appender.FileAppender"> <file value="Logs/Logs.txt"/> <appendToFile value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <appender name="Console" type="log4net.Appender.AspNetTraceAppender"> <!--A1 uses PatternLayout--> <layout type="log4net.Layout.PatternLayout"> <!--Print the date in ISO 8601 format--> <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline"/> </layout> </appender> <root> <level value="ALL"/> <appender-ref ref="Console"/> <appender-ref ref="FileAppender"/> <appender-ref ref="AdoNetAppender"/> </root> </log4net> Global.cs: protected void Application_Start() { ... // Configuration #region log4net // log4net.config System.IO.FileInfo fi = new System.IO.FileInfo(Server.MapPath("~/log4net.config")); if (fi != null && fi.Exists) { // Code that runs on application startup log4net.Config.XmlConfigurator.Configure(fi); } // web.config //log4net.Config.XmlConfigurator.Configure(); // set properti hostName log4net.GlobalContext.Properties["hostName"] = Dns.GetHostName(); #endregion #region NHibernate //HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize(); var factory = NHibernateSessionManager.ConfigureFromFile(Server.MapPath("~/hibernate.config")); #endregion } 在我的测试控制器中我有: public class TestController : BaseController { [NHibernateSession] public ActionResult Index() { Logger.Error("fake error",new Exception()); } } 在我的日志文件中 – Logs / Logs.txt: 2011-03-11 18:19:23,097 [8] ERROR System.Web.Mvc.Controller [(null)] - fake error System.Exception: Exception of type 'System.Exception' was thrown. 题: 这些dll的版本不兼容吗? 解决方法
我创建了一个空的ASP.Net MVC3项目.并且花了很多时间来解决这个问题.
我发现VS2010的bug.在项目中引用时,Visual Studio 2010不会在bin中复制dll. 我把log4net.dll手册放在我的bin文件夹中并正常工作. (有趣的是Logger.Error(“假错误”)在bin文件夹中没有log4net.dll的情况下工作正常…) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – ListView与DataPager不工作
- ASP.NET Core Web读取appsettings.json中的配置
- asp.net-mvc – 用于移动设备的displaymode,带有桌面视图,适
- asp.net – FireFox中的默认表单按钮
- asp.net – ASP .Net实体框架.tt文件不嵌套在.edmx下
- 4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列
- asp.net – CKEditor MVC 3实现
- asp.net-mvc-2 – 如何通过ASP.NET MVC 2.0中的textarea接受
- 无法在ASP.NET VB站点中加载System.DirectoryServices.Acco
- asp.net-core – 无法运行dnx控制台应用程序
推荐文章
站长推荐
- asp.net-mvc – 在MVC中,部分视图是否继承了父视
- asp.net-mvc-4 – 为什么BeginForm(“Foo”)在查
- asp.net – 必需和RegularExpression验证器占用空
- 开源音乐下载神器XMusicDownloader更新,支持歌单
- 如何为部署到aws弹性beanstalk的ASP.NET应用程序
- asp.net – 从VS2008发布的等效msbuild命令
- VS2005(c#)项目调试问题解决方案集锦 转
- asp.net-mvc – 数据库中已经有一个名为“AspNet
- 在ASP.NET 4.5 WebForms中通过bundle.config和Bu
- asp.net-mvc – 在哪里提出持久性依赖的域事件 –
热点阅读