Can you try adding the following to the config for the AdoNetAppender used to log the event after it is received via remoting:
<fix value="None" /> Let me know if this has any effect. Thanks, Nicko > -----Original Message----- > From: Deepanjan Ganguly [mailto:[EMAIL PROTECTED] > Sent: 22 July 2005 15:18 > To: Log4NET User > Subject: RE: Remoting and Adonetappender > > Nicko, > Thanks for your response. When I use the LogFileAppender it > logs the property values when remoting is used. However when > a buffering appender is used e.g. adonetappender, the > property does not get stored. There are no internal errors > thrown as well. While debugging I found that the MDC gets > cleared in the BufferingSkeleton.cs at the following code > when I use remoting. > ========================================= > if (m_bufferSize <= 1) > { > // Only send the event if we are in non lossy mode or the > event is a triggering event > if ((!m_lossy) || (m_evaluator != null && > m_evaluator.IsTriggeringEvent(loggingEvent)) || > (m_lossyEvaluator != null && > m_lossyEvaluator.IsTriggeringEvent(loggingEvent))) > { > if (m_eventMustBeFixed) > { > // Derive class expects fixed events > loggingEvent.Fix = this.Fix; //// ***THIS IS > WHERE THE MDC VALUE IS CLEARED IN REMOTING**//// > } > > // Not buffering events, send immediatly > SendBuffer(new LoggingEvent[] { loggingEvent } ); > } > } > =========================================== > I have set the buffersize to 1. So when SendBuffer is called > when remoting is used loggingEvent object does not have the > property values in it. > However when I use the adonetappender directly I don't get > this problem. > > > The two properties I am setting are "User" and "Client" in my example. > Here is config file I use on the client side. I have commented out the > one of the appenders in the client side based on whether I do remoting > or direct adonetappender. > =================================================================== > > > =================================================================== > Here's the server side config. I have both LogFileAppender and > adonetappender configured. As I said before all the property > values show > up correctly on the logfileappender during use of remoting. > ============================================================== > ========== > ==== > > <log4net debug="true"> > <appender name="ConsoleAppender" > type="log4net.Appender.ConsoleAppender"> > <layout type="log4net.Layout.PatternLayout"> > <param name="ConversionPattern" > value="%d [%t] %-5p %c %X{User} %X{Client} (%P{hostname}) [%x] - %m%n" > /> > </layout> > </appender> > <appender name="LogFileAppender" > type="log4net.Appender.FileAppender"> > <param name="File" value="log-file.txt" /> > <param name="AppendToFile" value="true" /> > <layout type="log4net.Layout.PatternLayout"> > <param name="Header" value="Reservation > Log File Initialized\r\n" /> > <param name="Footer" value="Reservation > Log File Closed\r\n" /> > <param name="ConversionPattern" > value="%d [%t] %-5p %c %X{User} %X{Client} (%P{hostname}) [%x] - %m%n" > /> > </layout> > </appender> > <!-- ADONetAppender --> > <appender name="ADONetAppender" > 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="server=TWEB01\\RESGUI; > database=ResDevlDb;Integrated Security=Yes;persist security info=true" > /> > <commandText value="INSERT INTO Res_AppLog > ([Date],[Level],[Logger],[User],[Message],[Exception],[Client]) VALUES > (@log_date, @log_level, @logger,@user, @message, @exception, @client)" > /> > <parameter> > <parameterName value="@log_date" /> > <dbType value="DateTime" /> > <layout type="log4net.Layout.RawTimeStampLayout" /> > </parameter> > <parameter> > <parameterName value="@log_level" /> > <dbType value="String" /> > <size value="50" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%p" /> > </layout> > </parameter> > <parameter> > <parameterName value="@logger" /> > <dbType value="String" /> > <size value="255" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%c" /> > </layout> > </parameter> > <parameter> > <parameterName value="@user" /> > <dbType value="String" /> > <size value="50" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%X{User}" /> > </layout> > </parameter> > <parameter> > <parameterName value="@message" /> > <dbType value="String" /> > <size value="4000" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%m" /> > </layout> > </parameter> > <parameter> > <parameterName value="@exception" /> > <dbType value="String" /> > <size value="2000" /> > <layout type="log4net.Layout.ExceptionLayout" /> > </parameter> > <parameter> > <parameterName value="@client" /> > <dbType value="String" /> > <size value="50" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%X{Client}" /> > </layout> > </parameter> > </appender> > <root> > <level value="DEBUG" /> > <appender-ref ref="LogFileAppender" /> > <appender-ref ref="ADONetAppender" /> > </root> > </log4net> > <system.runtime.remoting> > <application name="ResLoggingSvcs"> > <!-- We need to define the remoting channels on > which we will publish > the remote logging sink. --> > <channels> > <channel displayName="Server Channel" > ref="tcp server" port="8086" /> > </channels> > </application> > </system.runtime.remoting> > ============================================================== > ========= > > > Thanks again! > Deep > > > > > > -----Original Message----- > From: Nicko Cadell [mailto:[EMAIL PROTECTED] > Sent: Friday, July 22, 2005 6:58 AM > To: Log4NET User > Subject: RE: Remoting and Adonetappender > > What do your 2 log4net configuration files look like? > > In your receiving app what happens if you add a FileAppender > that would > log the property values, for example: > > <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> > <file value="log-file.txt" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%d %-5p %c %X{YourPropertyName} > - %m%n" /> > </layout> > </appender> > > Nicko > > > -----Original Message----- > > From: Deepanjan Ganguly [mailto:[EMAIL PROTECTED] > > Sent: 21 July 2005 21:32 > > To: Log4NET User > > Subject: Remoting and Adonetappender > > > > I am seeing a difference when I use remoting with > > adonetappender. All values set with MDC (beta8 version) are > > missing from the table. All the other fields are populated. > > However when I use adonetappender directly all the mdc values > > are being stored. > > > > Any idea why this might be happening? > > > > Thanks > > > > > > >
