# AppDiagnostic.Logging Reusable NLog target for sending structured diagnostic events from multiple .NET Framework processes to `AppDiagnostic.exe` through a local named pipe. ## Producer integration Reference this project from the producer application and add the extension and target to its NLog configuration: ```xml ``` The target writes to a bounded background queue. Producer threads are not blocked while the diagnostic viewer is unavailable. Queued messages are sent after the viewer becomes available; new messages are discarded when the queue limit is reached. The receiver can read messages with: ```csharp DiagnosticLogEntry entry = DiagnosticMessageSerializer.ReadFramed(namedPipeServerStream); ```