Переменная log4net adonetappender равна нулю
Погуглив это, кажется, навсегда, я решил задать вопрос здесь.
Я добавил настраиваемое поле и переменную в logonenet adonetappender. Тем не менее, после его повторной обработки и пробного использования практически всех предложений, найденных на первых 4 страницах Google, переменная по-прежнему выходит нулевой.
Есть идеи, почему это происходит, и какие-либо предложения, чтобы помочь?
Выход
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# код для установки переменной
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;
}
}
1 ответ
Выше работает, это была ошибка в моей логике программирования. Переменная не была установлена, когда регистрировались события.