-1

I am using log4net.Info method like below,

 public static void Audit(this ILog logger, string name, string field)
        {
            GlobalContext.Properties["Name"] = name;
            logger.Info(string.Format(CultureInfo.InvariantCulture, @"AUDIT: {0}", field));
        }

And I have the log4net configuration is,

<appender name="DatabaseAuditLogAppender" 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="Data Source=localt;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True" />
      <commandText value="INSERT INTO [dbo].[__AuditLog] 
                   ([CreateOnDateTime],[CreateByUserId],[Name],[Field]) 
                   VALUES (@logdate, @CreateByUserId, @Name, @Field)" />
      <parameter>
        <parameterName value="@logdate" />
        <dbType value="DateTime2" />
        <size value="-1" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
      </parameter>
      <parameter>
        <parameterName value="@CreateByUserId" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%property{CreateByUserId}" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@Name" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%property{Name}" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@Field" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
      <threshold value="INFO" />
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="AUDIT:" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>

Here when I write logs, it writes like this,

Audit: Some messages

I just want remove the "Audit:" text from the message, Please help me.

Karthikeyan
  • 299
  • 1
  • 10
  • 25
  • Change the 2nd row in your `Audit` method to `logger.Info(string.Format(CultureInfo.InvariantCulture, @"{0}", field));` – Emanuel Vintilă Feb 23 '16 at 07:06
  • Hi PasioniaX, Thanks for your reply. I am inserting the audit info in another table when the message starts with 'Audit:' . Please look at the configuration. – Karthikeyan Feb 23 '16 at 07:26

1 Answers1

0

Change your logging method to:

    public static void Audit(this ILog logger, string name, string field)
    {
        GlobalContext.Properties["Name"] = name;
        logger.Info(string.Format(CultureInfo.InvariantCulture, @"{0}", field));
    }

(Removed the AUDIT: part from your string)

Peter
  • 27,590
  • 8
  • 64
  • 84