AsyncTaskTarget Class |
Namespace: NLog.Targets
The AsyncTaskTarget type exposes the following members.
Name | Description | |
---|---|---|
AsyncTaskTarget |
Constructor
|
Name | Description | |
---|---|---|
BatchSize |
Gets or sets the number of log events that should be processed in a batch
by the lazy writer thread.
| |
ContextProperties |
Gets the array of custom attributes to be passed into the logevent context
(Inherited from TargetWithContext.) | |
ExcludeProperties |
List of property names to exclude when IncludeEventProperties is true
(Inherited from TargetWithContext.) | |
ForceLockingQueue |
Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue
The locking queue is less concurrent when many logger threads, but reduces memory allocation
| |
IncludeCallSite |
Gets or sets a value indicating whether to include call site (class and method name) in the LogEventInfo (Inherited from TargetWithContext.) | |
IncludeCallSiteStackTrace |
Gets or sets a value indicating whether to include source info (file name and line number) in the LogEventInfo (Inherited from TargetWithContext.) | |
IncludeEventProperties |
Gets or sets the option to include all properties from the log events
(Inherited from TargetWithContext.) | |
IncludeGdc |
Gets or sets a value indicating whether to include contents of the GlobalDiagnosticsContext dictionary
(Inherited from TargetWithContext.) | |
IncludeScopeNested |
Gets or sets whether to include the contents of the ScopeContext nested-state-stack.
(Inherited from TargetWithContext.) | |
IncludeScopeProperties |
Gets or sets whether to include the contents of the ScopeContext properties-dictionary.
(Inherited from TargetWithContext.) | |
IsInitialized |
Gets a value indicating whether the target has been initialized.
(Inherited from Target.) | |
Layout |
Gets or sets the layout used to format log messages.
(Inherited from TargetWithContext.) | |
LoggingConfiguration |
Gets the logging configuration this target is part of.
(Inherited from Target.) | |
Name |
Gets or sets the name of the target.
(Inherited from Target.) | |
OverflowAction |
Gets or sets the action to be taken when the lazy writer thread request queue count
exceeds the set limit.
| |
QueueLimit |
Gets or sets the limit on the number of requests in the lazy writer thread request queue.
| |
RetryCount |
How many attempts to retry the same Task, before it is aborted
| |
RetryDelayMilliseconds |
How many milliseconds to wait before next retry (will double with each retry)
| |
SyncRoot |
Gets the object which can be used to synchronize asynchronous operations that must rely on the .
(Inherited from Target.) | |
TaskDelayMilliseconds |
How many milliseconds to delay the actual write operation to optimize for batching
| |
TaskScheduler |
Task Scheduler used for processing async Tasks
| |
TaskTimeoutSeconds |
How many seconds a Task is allowed to run before it is cancelled.
|
Name | Description | |
---|---|---|
CaptureContextGdc |
Takes snapshot of GlobalDiagnosticsContext for the LogEventInfo (Inherited from TargetWithContext.) | |
CaptureScopeContextNested |
Takes snapshot of nested states from ScopeContext for the LogEventInfo (Inherited from TargetWithContext.) | |
CaptureScopeContextProperties |
Takes snapshot of ScopeContext dictionary for the LogEventInfo (Inherited from TargetWithContext.) | |
CloseTarget |
Closes Target by updating CancellationToken
(Overrides TargetCloseTarget.) | |
Dispose |
Closes the target.
(Inherited from Target.) | |
Dispose(Boolean) |
Releases any managed resources
(Overrides TargetDispose(Boolean).) | |
Flush |
Flush any pending log messages (in case of asynchronous targets).
(Inherited from Target.) | |
FlushAsync |
Schedules notification of when all messages has been written
(Overrides TargetFlushAsync(AsyncContinuation).) | |
GenerateUniqueItemName |
Generates a new unique name, when duplicate names are detected
(Inherited from TargetWithContext.) | |
GetAllProperties(LogEventInfo) |
Creates combined dictionary of all configured properties for logEvent
(Inherited from TargetWithContext.) | |
GetAllProperties(LogEventInfo, IDictionaryString, Object) |
Creates combined dictionary of all configured properties for logEvent
(Inherited from TargetWithContext.) | |
GetContextProperties(LogEventInfo) |
Checks if any context properties, and if any returns them as a single dictionary
(Inherited from TargetWithContext.) | |
GetContextProperties(LogEventInfo, IDictionaryString, Object) |
Checks if any context properties, and if any returns them as a single dictionary
(Inherited from TargetWithContext.) | |
GetScopeContextNested |
Returns the captured snapshot of nested states from ScopeContext for the LogEventInfo (Inherited from TargetWithContext.) | |
GetScopeContextProperties |
Returns the captured snapshot of ScopeContext dictionary for the LogEventInfo (Inherited from TargetWithContext.) | |
InitializeTarget |
Initializes the target before writing starts
(Overrides TargetInitializeTarget.) | |
PrecalculateVolatileLayouts |
Calls the Precalculate(LogEventInfo) on each volatile layout
used by this target.
This method won't prerender if all layouts in this target are thread-agnostic.
(Inherited from Target.) | |
RenderLogEvent(Layout, LogEventInfo) |
Renders the logevent into a string-result using the provided layout
(Inherited from Target.) | |
RenderLogEventT(LayoutT, LogEventInfo, T) |
Renders the logevent into a result-value by using the provided layout
(Inherited from Target.) | |
ResolveServiceT |
Resolve from DI ServiceRepository (Inherited from Target.) | |
RetryFailedAsyncTask |
Handle cleanup after failed write operation
| |
SerializeItemValue |
Take snapshot of a single object value
(Inherited from TargetWithContext.) | |
SerializeScopeContextNestedState |
Take snapshot of a single object value from ScopeContext nested states
(Inherited from TargetWithContext.) | |
SerializeScopeContextProperty |
Take snapshot of a single object value from ScopeContext dictionary
(Inherited from TargetWithContext.) | |
ShouldIncludeProperties |
Check if logevent has properties (or context properties)
(Inherited from TargetWithContext.) | |
ToString | Returns a string that represents the current object. (Inherited from Target.) | |
Write(AsyncLogEventInfo) |
Writes async log event to the log target.
(Overrides TargetWrite(AsyncLogEventInfo).) | |
Write(IListAsyncLogEventInfo) |
Block for override. Instead override WriteAsyncTask(IListLogEventInfo, CancellationToken) (Overrides TargetWrite(IListAsyncLogEventInfo).) | |
Write(LogEventInfo) |
Block for override. Instead override WriteAsyncTask(LogEventInfo, CancellationToken) (Overrides TargetWrite(LogEventInfo).) | |
WriteAsyncLogEvent |
Writes the log to the target.
(Inherited from Target.) | |
WriteAsyncLogEvents(AsyncLogEventInfo) |
Writes the array of log events.
(Inherited from Target.) | |
WriteAsyncLogEvents(IListAsyncLogEventInfo) |
Writes the array of log events.
(Inherited from Target.) | |
WriteAsyncTask(IListLogEventInfo, CancellationToken) |
Override this to provide async task for writing a batch of logevents.
| |
WriteAsyncTask(LogEventInfo, CancellationToken) |
Override this to provide async task for writing a single logevent.
Examples
Example of how to override this method, and call custom async method
1protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) 2{ 3 return CustomWriteAsync(logEvent, token); 4} 5 6private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) 7{ 8 await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); 9} | |
WriteAsyncThreadSafe(AsyncLogEventInfo) |
Write to queue without locking SyncRoot (Overrides TargetWriteAsyncThreadSafe(AsyncLogEventInfo).) | |
WriteAsyncThreadSafe(IListAsyncLogEventInfo) |
Block for override. Instead override WriteAsyncTask(IListLogEventInfo, CancellationToken) (Overrides TargetWriteAsyncThreadSafe(IListAsyncLogEventInfo).) | |
WriteFailedNotInitialized |
LogEvent is written to target, but target failed to successfully initialize
Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency.
(Overrides TargetWriteFailedNotInitialized(AsyncLogEventInfo, Exception).) |
1[Target("MyFirst")] 2public sealed class MyFirstTarget : AsyncTaskTarget 3{ 4 public MyFirstTarget() 5 { 6 this.Host = "localhost"; 7 } 8 9 [RequiredParameter] 10 public Layout Host { get; set; } 11 12 protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) 13 { 14 string logMessage = this.RenderLogEvent(this.Layout, logEvent); 15 string hostName = this.RenderLogEvent(this.Host, logEvent); 16 return SendTheMessageToRemoteHost(hostName, logMessage); 17 } 18 19 private async Task SendTheMessageToRemoteHost(string hostName, string message) 20 { 21 // To be implemented 22 } 23}