Clark Kent
Clark Kent

Reputation: 23

Log4Net log into MySql don't write

I trying to log into MySql table but it won't write. It doesn't show any error and doesn't write anyting in the mysql table.

This is the web.config settings for log4net:

<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>

In global.asax:

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

And this is a simple log in the aspx page:

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");
    }
}

Upvotes: 1

Views: 3589

Answers (1)

Eldar
Eldar

Reputation: 872

your bufferSize value="100" means nothing is written to the Log table until 100 messages are logged, change it to 1

also check this http://weblogs.asp.net/drnetjes/archive/2005/02/16/374780.aspx

Upvotes: 6

Related Questions