What I did my my AsyncAppender was to write thread specific data into
loggingEvent.Properties in the main thread, just before I add the
loggingEvent to a queue. Then you can use "%P{<PropertyName>}" in your
log4net config section to get them later in the other thread.My AsyncAppender was based on log4net AsyncAppender example (see http://logging.apache.org/log4net/release/example-apps.html). The log events sent to AsyncAppender are forwarded asynchronously to a list of attached appenders. On Tue, Jul 30, 2013 at 2:31 PM, George Chung <[email protected]> wrote: > If you authored your own AsynchronousAdoNetAppender that uses the new .NET > async/await constructs, you could use the TPL library to wrap the > ado.netasync operations as a Task. > > Then if you *avoid *calling ConfigureAwait(false), I'm pretty sure the > completion routine will complete on the original ASP.NET request thread, > in which case you'll have access to the original HttpContext that started > the request. > > > > On Tue, Jul 30, 2013 at 8:31 AM, Farrington, Linda <[email protected] > > wrote: > >> We are trying to log asynchronously using an asynchronousadonetappender >> inherited from adonetappender. Logging standard properties seems to work >> fine, but custom properties do not. I understand that this is because the >> asynchronous appender is logging the messages on another thread and we're >> storing the custom properties in the logicalthreadcontext (tried >> threadcontext = as well to no avail). My question is this: If I cannot >> use the threadcontext when running asynchronously, how should I pass custom >> properties into log4net. Has anyone else done this? Can anyone provide >> any suggestions?**** >> >> ** ** >> >> Thanks in advance,**** >> >> ** ** >> >> Linda**** >> >> ** ** >> >> ** ** >> >> ** ** >> > > -- http://www.chinhdo.com
