Skip to content

Releases: boexler/NLogViewer

CI Pipeline Fix

22 Oct 12:55

Choose a tag to compare

🔧 NLogViewer v3.1.1 - CI Pipeline Fixes

🐛 Bug Fixes

📦 NuGet Package Collection

  • Fixed Package Collection: Updated GitHub Actions workflows to collect all NuGet packages recursively
  • Complete Package Support: Now properly collects both Sentinel.NLogViewer and Sentinel.NLogViewer.MaterialDesign packages
  • PowerShell Syntax Fix: Corrected CMD syntax to PowerShell-compatible commands for GitHub Actions
  • Workflow Updates: Fixed commit, pre-release, and release workflows to use recursive search

🔧 Technical Details

Changed Files:

  • .github/workflows/commit.yml
  • .github/workflows/pre-release.yml
  • .github/workflows/release.yml
  • Directory.build.props

Before: Only collected packages from src\NLogViewer\bin\Release\ using CMD syntax
After: Recursively searches entire src directory using PowerShell Get-ChildItem commands

Commits:

  • 336395b - fix(ci): collect all NuGet packages recursively from src directory
  • dad5e85 - fix(ci): correct PowerShell syntax for NuGet package collection

This ensures that all generated NuGet packages are properly collected and published in all CI/CD workflows without PowerShell parser errors.

v3.1.0 - Material Design Theme & Advanced Search Functionality

22 Oct 12:05

Choose a tag to compare

🎨 NLogViewer v3.1.0 - Material Design Theme & Advanced Search

This major release introduces a complete Material Design theme package and powerful search functionality, transforming NLogViewer into a modern, feature-rich log viewing experience.

✨ New Features

🎨 Material Design Theme Package

  • New Package: NLogViewer.MaterialDesign - A complete Material Design themed version
  • Modern UI: Beautiful Material Design cards, icons, and color schemes
  • Enhanced Layout: Reduced header height (32px) with column separators
  • Theme Integration: Full compatibility with MaterialDesignThemes library
  • Test Applications: Included Material Design test app for easy evaluation

🔍 Advanced Search Functionality

  • Text & Regex Search: Support for both substring and regular expression patterns
  • Search Chips: Visual search terms displayed as Material Design chips
  • AND Logic: All search terms must match for entries to be displayed
  • Search Highlighting: Real-time highlighting of matched text in messages and logger names
  • Context Menus: Right-click search terms for edit/remove options
  • Regex Indicators: Visual "/" prefix for regex search terms

🏗️ Architecture Improvements

  • CustomControl Migration: Converted from UserControl to CustomControl for proper theming
  • MVVM Support: Added RelayCommand system for better MVVM compatibility
  • Code Organization: Improved separation of concerns and maintainability
  • Theme Support: Full theming infrastructure for custom styles

🚀 Enhanced Features

Column Management

  • Dynamic Column Visibility: Programmatic control over column display
  • Improved Binding: Better column visibility binding and code organization
  • Visual Separators: Enhanced column headers with separators

UI/UX Improvements

  • Section Headings: Added to Material Design theme for better organization
  • Search Interface: Dedicated edit button replacing left-click for search terms
  • Color Customization: Enhanced color property descriptions and binding
  • Responsive Design: Better layout adaptation for different screen sizes

🔧 Technical Improvements

Code Quality

  • Refactoring: Replaced code-behind with commands for better maintainability
  • Safety: Used nameof() in DependencyProperty.Register for refactor safety
  • Performance: Optimized search term matching and hierarchy
  • Documentation: Comprehensive README for Material Design package

Infrastructure

  • GitHub Actions: Updated to latest versions and improved asset upload
  • Framework: Updated to .NET 8 support
  • Dependencies: Added MaterialDesignThemes integration

📦 Package Structure

  • NLogViewer: Core control library
  • NLogViewer.MaterialDesign: Material Design theme package
  • Test Applications: Both base and Material Design test apps included

🎯 Breaking Changes

  • Architecture: Migration from UserControl to CustomControl may require theme updates
  • Commands: ActionCommand replaced with RelayCommand system

📚 Documentation

  • Updated main README with Material Design section
  • Comprehensive Material Design package documentation
  • Enhanced search functionality documentation
  • Improved code examples and usage patterns

🔗 Related Issues

  • Closes #116: Convert NLogViewer UserControl into a themeable CustomControl
  • Closes #117: Material Design theme support
  • Closes #118: Implement search functionality
  • Closes #119: Search functionality improvements

Full Changelog: v3.0.0...v3.1.0

Migration Guide: See the updated README for migration instructions from UserControl to CustomControl architecture.

Release v3.0.0 - Major Feature Update

08 Oct 11:47

Choose a tag to compare

🎉 What's New in v3.0.0

This major release brings significant enhancements to the NLogViewer control library, including new filtering capabilities, improved control buttons, dynamic column visibility, subscription management for docking systems, and an upgrade to .NET 8.

✨ New Features

🔍 Filter Buttons

  • New filter functionality to hide/show specific log levels (Trace, Debug, Info, Warn, Error, Fatal)
  • Toggle buttons for each log level with intuitive filtering
  • Programmatic control through new filter properties
  • Visibility control for the entire filter button group
  • XAML binding support for MVVM scenarios

🎛️ Enhanced Control Buttons

  • Improved UI for control buttons with better visual design
  • Visibility control for the entire control button group
  • Enhanced documentation with comprehensive usage examples
  • Better integration with existing AutoScroll, ClearCommand, and Pause functionality

📊 Dynamic Column Visibility

  • Hide/show individual columns (ID, Level, TimeStamp, LoggerName)
  • Programmatic control through new dependency properties
  • XAML binding support for dynamic column management
  • Message column remains always visible for core functionality

🔗 Subscription Management

  • New StartListen()/StopListen() methods for manual subscription control
  • Docking system support - fixes subscription disposal when undocking controls
  • Memory leak prevention with proper subscription cleanup
  • Enhanced lifecycle management for complex UI scenarios

🚀 .NET 8 Upgrade

  • Upgraded from .NET 6 to .NET 8 for better performance and latest features
  • Updated dependencies to latest compatible versions
  • Improved build pipeline with updated GitHub Actions

🛠️ Technical Improvements

Build & Infrastructure

  • Updated GitHub Actions workflow with latest artifact upload actions
  • Improved build pipeline reliability
  • Enhanced project structure and dependencies

UI/UX Enhancements

  • Better Visual Studio designer experience with improved design-time data context
  • Fixed design-time issues with problematic d:DataContext attributes
  • Improved ListViewLayoutManager column resizing timing

Code Quality

  • Enhanced type checking in GetChildObjects method
  • Improved tree traversal with cycle detection
  • Better error handling and edge case management

📋 Breaking Changes

⚠️ Target Framework Change: This release upgrades from .NET 6 to .NET 8. Applications using this library will need to target .NET 8 or later.

🔧 Migration Guide

For Filter Functionality

// New filter properties available
nLogViewer.TraceFilter = true;  // Hide Trace entries
nLogViewer.DebugFilter = true;  // Hide Debug entries
nLogViewer.ShowFilterButtons = false; // Hide filter group

For Column Visibility

// New column visibility properties
nLogViewer.ShowIdColumn = false;
nLogViewer.ShowLevelColumn = false;
nLogViewer.ShowTimeStampColumn = false;
nLogViewer.ShowLoggerNameColumn = false;

For Docking Systems

// New subscription management methods
private void OnDockChanged(object sender, DockChangedEventArgs e)
{
    nLogViewer.StartListen(); // Required after undocking
}

📦 Package Information

  • Package ID: Sentinel.NLogViewer
  • Target Framework: .NET 8
  • Dependencies: NLog 5.2.4, System.Reactive 6.0.0
  • NuGet: Available on nuget.org

🐛 Bug Fixes

  • Fixed subscription disposal issues in docking systems (Issue #90)
  • Improved Visual Studio designer experience
  • Enhanced ListViewLayoutManager column resizing
  • Better error handling for edge cases

📚 Documentation

  • Comprehensive README updates with new feature documentation
  • Detailed usage examples for all new functionality
  • Migration guides for breaking changes
  • Enhanced API documentation

🔗 Related Issues & PRs

  • PR #115: Add filter buttons functionality
  • PR #114: Fix subscription disposal when undocking viewer parent container
  • PR #113: Update to .NET 8
  • PR #112: Add column visibility functionality
  • PR #108: Various improvements and fixes
  • PR #107: Fix type checking in GetChildObjects
  • PR #106: Additional improvements
  • PR #105: Fix build pipeline

🎯 What's Next

This release establishes a solid foundation for future enhancements. We're planning additional features for upcoming releases including:

  • Enhanced export functionality
  • Improved performance optimizations
  • Additional customization options

🙏 Acknowledgments

Thank you to all contributors and users who provided feedback and suggestions that made this release possible!


Full Changelog: v2.0.1...v3.0.0

v2.0.1: downgrade SDK

28 Jun 06:20
5fde391

Choose a tag to compare

  • fixed PresentationFramework dependency #84

v2.0.0: .NET6

27 Jun 09:29
800c749

Choose a tag to compare

updated to .NET6

Update dependencies

13 Oct 07:58
75a5dc8

Choose a tag to compare

Changes:

Others:

  • #44: Bump NLog from 4.6.8 to 4.7.5
  • #45: Bump System.Reactive from 4.3.2 to 4.4.1

GitHub workflow implemented

12 Oct 09:04
74bb509

Choose a tag to compare

  • No code changes!
  • GitHub workflow implemented (#33)

Usecase in non windows implemented

08 Oct 07:28
a5707ff

Choose a tag to compare

  • bugfix: null check if there is no parent window implemented (#30)

Added MIT License

17 Sep 08:13
1845bd9

Choose a tag to compare

  • added a license file to the project and nuget package (#27)

Fixed disposing mechanism if VisualParent changed

19 Feb 11:12
b4b2b0a

Choose a tag to compare

  • bugfix in how to handle VisualParent changes