NetworkTarget Class |
Namespace: NLog.Targets
The NetworkTarget type exposes the following members.
Name | Description | |
---|---|---|
NetworkTarget |
Initializes a new instance of the NetworkTarget class.
| |
NetworkTarget(String) |
Initializes a new instance of the NetworkTarget class.
|
Name | Description | |
---|---|---|
Address |
Gets or sets the network address.
| |
Compress |
Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.
| |
CompressMinBytes |
Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers
| |
ConnectionCacheSize |
Gets or sets the size of the connection cache (number of connections which are kept alive). Requires KeepConnection = true
| |
Encoding |
Gets or sets the encoding to be used.
| |
IsInitialized |
Gets a value indicating whether the target has been initialized.
(Inherited from Target.) | |
KeepAliveTimeSeconds |
The number of seconds a connection will remain idle before the first keep-alive probe is sent
| |
KeepConnection |
Gets or sets a value indicating whether to keep connection open whenever possible.
| |
Layout |
Gets or sets the layout used to format log messages.
(Inherited from TargetWithLayout.) | |
LineEnding |
Gets or sets the end of line value if a newline is appended at the end of log message NewLine.
| |
LoggingConfiguration |
Gets the logging configuration this target is part of.
(Inherited from Target.) | |
MaxConnections |
Gets or sets the maximum simultaneous connections. Requires KeepConnection = false
| |
MaxMessageSize |
Gets or sets the maximum message size in bytes. On limit breach then OnOverflow action is activated.
| |
MaxQueueSize |
Gets or sets the maximum queue size for a single connection. Requires KeepConnection = true
| |
Name |
Gets or sets the name of the target.
(Inherited from Target.) | |
NewLine |
Gets or sets a value indicating whether to append newline at the end of log message.
| |
OnConnectionOverflow |
Gets or sets the action that should be taken, when more connections than MaxConnections.
| |
OnOverflow |
Gets or sets the action that should be taken if the message is larger than MaxMessageSize | |
OnQueueOverflow |
Gets or sets the action that should be taken, when more pending messages than MaxQueueSize.
| |
SendTimeoutSeconds |
The number of seconds a TCP socket send-operation will block before timeout error. Default wait forever when network cable unplugged and tcp-buffer becomes full.
| |
SslProtocols |
Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.
| |
SyncRoot |
Gets the object which can be used to synchronize asynchronous operations that must rely on the .
(Inherited from Target.) |
Name | Description | |
---|---|---|
CloseTarget |
Closes the target to release any initialized resources
(Overrides TargetCloseTarget.) | |
Dispose |
Closes the target.
(Inherited from Target.) | |
Dispose(Boolean) |
Releases unmanaged and - optionally - managed resources.
(Inherited from Target.) | |
Flush |
Flush any pending log messages (in case of asynchronous targets).
(Inherited from Target.) | |
FlushAsync |
Flush any pending log messages asynchronously (in case of asynchronous targets).
(Overrides TargetFlushAsync(AsyncContinuation).) | |
GetBytesToWrite |
Gets the bytes to be written.
| |
InitializeTarget |
Initializes the target before writing starts
(Inherited from Target.) | |
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.) | |
ToString | Returns a string that represents the current object. (Inherited from Target.) | |
Write(AsyncLogEventInfo) |
Sends the
rendered logging event over the network optionally concatenating it with a newline character.
(Overrides TargetWrite(AsyncLogEventInfo).) | |
Write(IListAsyncLogEventInfo) |
Writes an array of logging events to the log target. By default it iterates on all
events and passes them to "Write" method. Inheriting classes can use this method to
optimize batch writes.
(Inherited from Target.) | |
Write(LogEventInfo) |
Writes logging event to the target destination
(Inherited from Target.) | |
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.) | |
WriteAsyncThreadSafe(AsyncLogEventInfo) |
Writes a log event to the log target, in a thread safe manner.
Any override of this method has to provide their own synchronization mechanism.
!WARNING! Custom targets should only override this method if able to provide their
own synchronization mechanism. Layout-objects are not guaranteed to be
thread-safe, so using them without a SyncRoot-object can be dangerous.
(Inherited from Target.) | |
WriteAsyncThreadSafe(IListAsyncLogEventInfo) |
Writes an array of logging events to the log target, in a thread safe manner.
Any override of this method has to provide their own synchronization mechanism.
!WARNING! Custom targets should only override this method if able to provide their
own synchronization mechanism. Layout-objects are not guaranteed to be
thread-safe, so using them without a SyncRoot-object can be dangerous.
(Inherited from Target.) | |
WriteFailedNotInitialized |
LogEvent is written to target, but target failed to successfully initialize
(Inherited from Target.) |
Name | Description | |
---|---|---|
LogEventDropped |
Occurs when LogEvent has been dropped.
|
To set up the target in the configuration file, use the following syntax:
1<?xml version="1.0" ?> 2<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4 <targets> 5 <target name="network" xsi:type="Network" address="tcp://localhost:5555" layout="${level} ${logger} ${message}${newline}" /> 6 </targets> 7 8 <rules> 9 <logger name="*" minlevel="Debug" writeTo="network" /> 10 </rules> 11</nlog>
To set up the log target programmatically use code like this:
1using NLog; 2using NLog.Targets; 3 4class Example 5{ 6 static void Main(string[] args) 7 { 8 NetworkTarget target = new NetworkTarget(); 9 target.Layout = "${level} ${logger} ${message}${newline}"; 10 target.Address = "tcp://localhost:5555"; 11 12 NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(target, LogLevel.Debug); 13 14 Logger logger = LogManager.GetLogger("Example"); 15 logger.Trace("log message 1"); 16 logger.Debug("log message 2"); 17 logger.Info("log message 3"); 18 logger.Warn("log message 4"); 19 logger.Error("log message 5"); 20 logger.Fatal("log message 6"); 21 } 22}
To print the results, use any application that's able to receive messages over TCP or UDP. NetCat is a simple but very powerful command-line tool that can be used for that. This image demonstrates the NetCat tool receiving log messages from Network target.
There are two specialized versions of the Network target: Chainsaw and NLogViewer which write to instances of Chainsaw log4j viewer or NLogViewer application respectively.