Log4Net how to add custom field to my log

I am using the log4net.Appender.AdoNetAppender application.
My log4net table is the following fields: [Date],[Thread],[Level],[Logger],[Message],[Exception]

I need to add another field to the log4net table (for example, SalesId), but how would I indicate in my xml and in the code for registering β€œSalesId” when registering an error message or information?

eg. log.Info("SomeMessage", SalesId)

Here log4net xml

  <appender name="SalesDBAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value ="System.Data.SqlClient.SqlConnection" /> <connectionString value="Data Source=..." /> <commandText value="INSERT INTO Log4Net ([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> 
+73
c # log4net appender
Aug 27 2018-12-12T00:
source share
1 answer

1) Modify the command text: INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception],[MyColumn]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @CustomColumn)

2) Add a parameter definition for the custom column:

 <parameter> <parameterName value="@CustomColumn"/> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%property{CustomColumn}" /> </layout> </parameter> 

3) Then use one of the log4nets contexts to pass values ​​to the parameter:

 // thread properties... log4net.LogicalThreadContext.Properties["CustomColumn"] = "Custom value"; log.Info("Message"); // ...or global properties log4net.GlobalContext.Properties["CustomColumn"] = "Custom value"; 
+151
Aug 27 '12 at 10:27
source share



All Articles