Cause:
- Live diagnostics required logging from multiple applications without blocking TBF.
- Shared nlog.config files caused configuration conflicts.
- The original viewer lacked configurable colors and practical log controls.
- Inconsistent diagnostic deployment caused log transfer failures and locked shared DLLs during builds.
Solution:
1. Added universal diagnostic transport
- Added AppDiagnostic.Logging with an NLog target and named-pipe communication.
- Added background buffering and automatic reconnection.
- Registered the diagnostic connector programmatically.
2. Separated diagnostic window lifecycle
- Run AppDiagnostic as an independent process.
- Activate the existing window on repeated launches.
- Keep TBF running when the diagnostic window closes.
3. Corrected diagnostic deployment
- Copy the complete diagnostic output into a dedicated AppDiagnostic subdirectory during build.
- Overwrite existing deployment files to prevent inconsistent versions.
- Validate and launch the executable from that subdirectory with an explicit working directory.
4. Improved the log viewer
- Added configurable substring colors with a palette and live preview.
- Added text, level and application filters.
- Added line wrapping, clipboard actions and log export.
- Added Pause/Resume, Refresh, Clear, auto-scroll and Always on top.
- Added connection and log counters.
- Persist color rules between sessions.
5. Removed legacy dependencies
- Replaced LiveLogCache with structured diagnostic storage.
- Removed AppDiagnostic dependencies on log4net and SharedComponents.
Validation:
- Confirmed successful log transfer when launching AppDiagnostic from TBF.