1

我试图登录到 MySql 表,但它不会写入。它没有显示任何错误,也没有在 mysql 表中写入任何内容。

这是 log4net 的 web.config 设置:

<log4net>

    <appender name="MySql_ADONetAppender" type="log4net.Appender.ADONetAppender">
      <bufferSize value="100" />
      <connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"/>
      <connectionString value="Server=127.0.0.1;Database=svil;Uid=LogUser;Pwd=LogPass;"/>
      <commandText value="INSERT INTO Log (Date,Thread,Level,Logger,Message,Exception) VALUES (?log_date, ?thread, ?log_level, ?logger, ?message, ?exception)" />
      <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="?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>

    <root>
      <level value="ALL"/>
      <appender-ref ref="MySql_ADONetAppender"/>
    </root>
</log4net>

在 global.asax 中:

protected void Application_Start(object sender, EventArgs e)
{
    log4net.Config.XmlConfigurator.Configure();
}

这是aspx页面中的一个简单日志:

public partial class _Default : System.Web.UI.Page
{
    private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    protected void Page_Load(object sender, EventArgs e)
    {
        log.Info("Test Log Message");
    }
}
4

1 回答 1

6

您的 bufferSize value="100" 表示在记录 100 条消息之前不会将任何内容写入日志表,请将其更改为 1

还要检查这个http://weblogs.asp.net/drnetjes/archive/2005/02/16/374780.aspx

于 2012-09-21T14:59:51.547 回答