log4net的不记录或错误 [英] Log4Net doesn't log or error

查看:116
本文介绍了log4net的不记录或错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图获得log4net的日志记录,但没有成功或任何noticable错误,我的asp.net web应用程序。我试图使用ADONetAppender附加器具有以下配置:

I have been attempting to get log4net logging in my asp.net web application with no success or any noticable errors. I am attempting to use the ADONetAppender appender with the following config:

<log4net>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
  <bufferSize value="1" />
  <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <connectionString value="server=" />
  <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception],[Context]) VALUES 
                            (@log_date, @thread, @log_level, @logger, @message, @exception, @context)" />
  <parameter>
    <parameterName value="@log_date" />
    <dbType value="DateTime" />
    <layout type="log4net.Layout.RawTimeStampLayout" />
  </parameter>
  <parameter>
    <parameterName value="@thread" />
    <dbType value="String" />
    <size value="32" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%t" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@log_level" />
    <dbType value="String" />
    <size value="512" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%p" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@context" />
    <dbType value="String" />
    <size value="512" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%x" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@logger" />
    <dbType value="String" />
    <size value="512" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%c" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@message" />
    <dbType value="String" />
    <size value="4000" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%m" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@exception" />
    <dbType value="String" />
    <size value="2000" />
    <layout type="log4net.Layout.ExceptionLayout" />
  </parameter>
</appender>
<root>
  <level value="DEBUG" />
  <appender-ref ref="ADONetAppender" />
</root>

在我的Global.asax的Application_Start我称之为

In my global.asax Application_Start I call

log4net.Config.XmlConfigurator.Configure();

然后再尝试登录:

Then to attempt to log:

protected static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected void Page_Load(object sender, EventArgs e)
{            
    log.Info("did I log yet?");
}

这一切什么都不做,据我可以告诉。

All of this does nothing as far as I can tell.

推荐答案

你有没有加入下配置 - >添加Configsections以下部分在

Have you added added the following section under under Configuration->Configsections

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

虽然有可能你的log4net的配置设置添加到您的项目的app.config或web.config文件,它是preferable将它们放在一个单独的配置文件。除了维修的明显的好处,它有额外的好处log4net的可以放置在您的配置文件中的 FileSystemWatcher的要监视的对象时,它的变化,并动态更新其设置。

Although it is possible to add your log4net configuration settings to your project’s app.config or web.config file, it is preferable to place them in a separate configuration file. Aside from the obvious benefit of maintainability, it has the added benefit that log4net can place a FileSystemWatcher object on your config file to monitor when it changes and update its settings dynamically.

要使用一个单独的配置文件,添加一个名为 Log4Net.config 到您的项目文件,下面的属性添加到您的的AssemblyInfo.cs 文件:

To use a separate config file, add a file named Log4Net.config to your project and add the following attribute to your AssemblyInfo.cs file:

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

注意:Web应用程序,这是假定Log4Net.config驻留在Web根。确保log4net.config文件被标记为复制到输出 - >复制始终在属性

Note: for web applications, this assumes Log4Net.config resides in the web root. Ensure the log4net.config file is marked as "Copy To Output" -> "Copy Always" in Properties.

这篇关于log4net的不记录或错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆