log4net 无法输出日志,跟踪发现IsErrorEnabled等,都是Flase。

因为这是个半路接手的项目,写法和我之前的习惯不一样,所以也没看出问题出在哪里。

代码如下:

        private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Log.Error("输出日志");
            }
            catch(Exception ex)
            {
                Log.Error("输出异常日志");
            }
        }

log4net配置放在web.config里面,分别是

        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

    <log4net>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
            <file value="log\\"/>
            <appendToFile value="true"/>
            <rollingStyle value="Composite"/>
            <maxSizeRollBackups value="-1"/>
            <maximumFileSize value="10MB"/>
            <staticLogFileName value="false"/>
            <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
            </layout>
        </appender>
        <root>
            <level value="DEBUG"/>
            <!--1. ALL 2. DEBUG  3. INFO 4. WARN 5. ERROR 6. FATAL 7. OFF-->
            <appender-ref ref="RollingFileAppender"/>
        </root>
    </log4net>

最后百度了一下,发现原来,还需要在Properties下面的AssemblyInfo.cs中加入[assembly: log4net.Config.XmlConfigurator(ConfigFile = "web.config", Watch = true)]

直接加到最后一行即可,这里面的web.config是log4net配置文件所在的文件名,也可是单独的文件,如log4net.conig

我之前的写法,都是动态加载的,如:

   var path = AppDomain.CurrentDomain.BaseDirectory + @"\log4net_config.xml";
   log4net.Config.XmlConfigurator.Configure(new FileInfo(path));
posted on 2013-06-15 00:40  晓晨  阅读(7851)  评论(3编辑  收藏  举报