0

After googling this for what seems like forever, I have resorted to asking the question here.

I have added a custom field and variable to the log4net adonetappender. However, after re-working it and trying all practically every suggestion found in the first 4 pages of google, the variable still comes out null.

Any ideas why this happening and any suggestions to help?

Output

RowId   Username    DateOfActivity  Thread  Level   Logger  Message Exception
16  (null)  2015-08-27 18:53:40.607 124732  DEBUG   LogToDatabaseTest.Form1 Retrieving info for ID

App.Config

<parameter>
<parameterName value="@username"/>
<dbType value="String" />
<size value="100" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%property{username}"/>
    </layout>
  </parameter>
  <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="4000"/>
    <layout type="log4net.Layout.ExceptionLayout"/>
  </parameter>

C# code to set the variable

private void simpleButton1_Click(object sender, EventArgs e)
{
ThreadContext.Properties["username"] = SystemInformation.UserName;

log4net.Config.XmlConfigurator.Configure();//(Watch = false)


try
{
    long_ID = Int64.Parse(textEdit1.Text);
}

catch (FormatException fe)
{
    XtraMessageBox.Show("ID inputted is not a number! Please enter a valid ID", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);

    log.Error(String.Format("Retrieving Info for ID: {0}", textEdit1.Text), fe);

    return;
}
}
KB54
  • 51
  • 4

1 Answers1

0

The above was working, it was an error in my programming logic. The variable was not set when the logged events were hit.

KB54
  • 51
  • 4