Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy log4net doesn't log nhibernate information
    primarykey
    data
    text
    <p>My Visual Studio Solution contains:</p> <ol> <li>[DLL] Sol.DataAccess (NHibernate sessionManager)</li> <li>[DLL] Sol.Core (Models and Repository) </li> <li>[MVC] Sol.WebMvc (Controler, View)</li> </ol> <p>All my application contains are (nhibernate.dll [v3.0] and log4net.dll[v1.2.10])</p> <p>I have 3 configs:</p> <p>web.config:</p> <pre><code>&lt;configuration&gt; &lt;configSections&gt; &lt;section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" requirePermission="false" /&gt; &lt;section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/&gt; &lt;/configSections&gt; &lt;/configuration&gt; </code></pre> <p>nhibernate.config:</p> <pre><code>&lt;hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" &gt; &lt;session-factory name="..."&gt; &lt;property name="connection.driver_class"&gt;NHibernate.Driver.SqlClientDriver&lt;/property&gt; &lt;property name="connection.connection_string_name"&gt;...&lt;/property&gt; &lt;property name="adonet.batch_size"&gt;10&lt;/property&gt; &lt;property name="show_sql"&gt;true&lt;/property&gt; &lt;property name="generate_statistics"&gt;true&lt;/property&gt; &lt;property name="dialect"&gt;NHibernate.Dialect.MsSql2008Dialect&lt;/property&gt; &lt;property name="use_outer_join"&gt;true&lt;/property&gt; &lt;property name="max_fetch_depth"&gt;2&lt;/property&gt; &lt;property name="command_timeout"&gt;60&lt;/property&gt; &lt;property name="adonet.batch_size"&gt;25&lt;/property&gt; &lt;property name="query.substitutions"&gt;true 1, false 0, yes 'Y', no 'N'&lt;/property&gt; &lt;property name="proxyfactory.factory_class"&gt;NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle&lt;/property&gt; &lt;property name="current_session_context_class"&gt;web&lt;/property&gt; &lt;property name="cache.use_query_cache"&gt;true&lt;/property&gt; &lt;property name="cache.provider_class"&gt;NHibernate.Caches.SysCache2.SysCacheProvider, NHibernate.Caches.SysCache2&lt;/property&gt; &lt;mapping assembly="..."/&gt; &lt;/session-factory&gt; &lt;/hibernate-configuration&gt; </code></pre> <p>and log4net.config:</p> <pre><code>&lt;log4net&gt; &lt;appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"&gt; &lt;!--for release--&gt; &lt;!--&lt;bufferSize value="10" /&gt;--&gt; &lt;!--for debug--&gt; &lt;bufferSize value="1" /&gt; &lt;connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /&gt; &lt;connectionString value="Data Source=xxxxx; Initial Catalog=xxxx; User Id=xxxx; Password=xxxxx; App=xxxx" /&gt; &lt;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)" /&gt; &lt;parameter&gt; &lt;parameterName value="@app" /&gt; &lt;dbType value="String" /&gt; &lt;size value="255" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="xxxx" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@hostName" /&gt; &lt;dbType value="String" /&gt; &lt;size value="255" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%property{hostName}" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@userName" /&gt; &lt;dbType value="String" /&gt; &lt;size value="255" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%property{userName}" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@log_date" /&gt; &lt;dbType value="DateTime" /&gt; &lt;layout type="log4net.Layout.RawTimeStampLayout" /&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@thread" /&gt; &lt;dbType value="String" /&gt; &lt;size value="255" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%thread" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@log_level" /&gt; &lt;dbType value="String" /&gt; &lt;size value="50" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%level" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@operation" /&gt; &lt;dbType value="String" /&gt; &lt;size value="50" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%property{Operation}" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@logger" /&gt; &lt;dbType value="String" /&gt; &lt;size value="255" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%logger" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@message" /&gt; &lt;dbType value="String" /&gt; &lt;size value="4000" /&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%message" /&gt; &lt;/layout&gt; &lt;/parameter&gt; &lt;parameter&gt; &lt;parameterName value="@exception" /&gt; &lt;dbType value="String" /&gt; &lt;size value="2000" /&gt; &lt;layout type="log4net.Layout.ExceptionLayout" /&gt; &lt;/parameter&gt; &lt;/appender&gt; &lt;appender name="FileAppender" type="log4net.Appender.FileAppender"&gt; &lt;file value="Logs/Logs.txt"/&gt; &lt;appendToFile value="true"/&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/&gt; &lt;/layout&gt; &lt;/appender&gt; &lt;appender name="Console" type="log4net.Appender.AspNetTraceAppender"&gt; &lt;!--A1 uses PatternLayout--&gt; &lt;layout type="log4net.Layout.PatternLayout"&gt; &lt;!--Print the date in ISO 8601 format--&gt; &lt;conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline"/&gt; &lt;/layout&gt; &lt;/appender&gt; &lt;root&gt; &lt;level value="ALL"/&gt; &lt;appender-ref ref="Console"/&gt; &lt;appender-ref ref="FileAppender"/&gt; &lt;appender-ref ref="AdoNetAppender"/&gt; &lt;/root&gt; &lt;/log4net&gt; </code></pre> <p>Global.cs:</p> <pre><code>protected void Application_Start() { ... // Configuration #region log4net // log4net.config System.IO.FileInfo fi = new System.IO.FileInfo(Server.MapPath("~/log4net.config")); if (fi != null &amp;&amp; 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 } </code></pre> <p>in my test controller i have:</p> <pre><code>public class TestController : BaseController { [NHibernateSession] public ActionResult Index() { Logger.Error("fake error", new Exception()); } } </code></pre> <p>In my log file - Logs/Logs.txt:</p> <pre><code>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. </code></pre> <p><strong>QUESTION:</strong> Why log4net doesn't log NHibernate information (info, debug ....)</p> <p>Aren't the versions of these dlls compatible?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload