Releases: boexler/NLogViewer
CI Pipeline Fix
🔧 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.NLogViewerandSentinel.NLogViewer.MaterialDesignpackages - 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.ymlDirectory.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 directorydad5e85- 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
🎨 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
🎉 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
🔧 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 groupFor 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
- fixed
PresentationFrameworkdependency #84
v2.0.0: .NET6
updated to .NET6
Update dependencies
GitHub workflow implemented
- No code changes!
- GitHub workflow implemented (#33)
Usecase in non windows implemented
- bugfix: null check if there is no parent window implemented (#30)
Added MIT License
- added a license file to the project and nuget package (#27)
Fixed disposing mechanism if VisualParent changed
- bugfix in how to handle
VisualParentchanges