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 に答える