2011-04-19 163 views
1

在我的項目中我使用MVC,NHibernate和記錄html錯誤我想使用log4net庫。log4net日誌文件沒有創建

這裏是web.config配置

<configuration> 
<configSections> 
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> 
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
<!--<sectionGroup name="blowery.web"> 
     <section name="httpCompress" type="blowery.Web.HttpCompress.SectionHandler, blowery.Web.HttpCompress"/> 
    </sectionGroup>--> 
</configSections> 
<log4net debug="false"> 

<!-- Define some output appenders --> 
<appender name="trace" type="log4net.Appender.TraceAppender, log4net"> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
    </layout> 
</appender> 

<appender name="console" type="log4net.Appender.ConsoleAppender, log4net"> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
    </layout> 
</appender> 

<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" > 

    <param name="File" value="log.txt" /> 
    <param name="AppendToFile" value="true" /> 
    <param name="RollingStyle" value="Date" /> 
    <param name="DatePattern" value="yyyy.MM.dd" /> 
    <param name="StaticLogFileName" value="true" /> 

    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
    </layout> 
</appender> 

<!-- Setup the root category, add the appenders and set the default priority --> 

<root> 
    <priority value="INFO" /> 
    <appender-ref ref="console" /> 
</root> 
</log4net> 

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
<session-factory> 
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 

    <property name="connection.connection_string">Password=maserver.login12345;Persist Security Info=True;User ID=sa;Initial Catalog=Mashhad4;Data Source=DEVSERVER</property> 


    <property name="show_sql">true</property> 
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property> 
    <!--<property name="hibernate.batch_size">20</property>--> 

    <!--<property name="command_timeout">5000</property>--> 
</session-factory> 
</hibernate-configuration> 
<configuration> 

在AssemblyInfo.cs文件中我有這樣的:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)] 

但在控制器,當我使用這部分代碼,它不會產生任何txt文件。

log4net.Config.BasicConfigurator.Configure(); 
     Exception inner = filterContext.Exception.InnerException; 
     log4net.ILog log = log4net.LogManager.GetLogger("MainLogger"); 
     log.Error("Unhandled exception", inner == null ? filterContext.Exception : inner); 

什麼問題?根元素下

回答

0

嘗試增加此:

<logger name="NHibernate.SQL"> 
    <appender-ref ref="rollingFile" /> 
    <level value="ALL" /> 
</logger> 

編輯:

爲了使用稱爲MainLogger記錄器,使用:

<logger name="MainLogger"> 
    <appender-ref ref="rollingFile" /> 
    <level value="ALL" /> 
</logger> 

當在調試模式下,該文件將在<projectfolder>\bin\Debug中創建,因爲您沒有指定路徑而只指定文件名。

+0

我沒有工作,沒有任何改變 – Adrakadabra 2011-04-19 10:39:20

+0

@Adrakadabra我在我的答案中提出了另一種解決方案。 – 2011-04-19 12:22:48

+0

還確保運行您的Web應用程序(網絡服務/本地服務或其他)的用戶對您要寫入的文件夾具有寫入權限 – 2011-04-19 20:28:15