This commit enhances the logging system with better thread safety and proper test configuration:
- Replace RefCell with RwLock in SimpleLogger for thread-safe logging
- Add proper feature flag configuration for test-sync
- Organize logging modules with clear separation between prod and test
- Update test files with proper feature flag annotations
- Fix module structure in lib.rs to avoid duplicate definitions
Technical changes:
- Use RwLock for thread-safe log writer access
- Add #![cfg(feature = "test-sync")] to all test files
- Configure .cargo/config.toml for test-sync feature
- Update Cargo.toml with proper test configurations
- Clean up logging module exports
This change ensures thread-safe logging in production while maintaining
separate test-specific synchronization primitives, improving overall
reliability and maintainability.
- Create unit test and integration tests for logs in separate tests
- Centralize temporary log file creation in common.rs
- Remove redundant logging initialization code from common.rs
- Update all test files to handle their own logging initialization
- Add detailed debug logging throughout test execution
- Add log file content display for better test debugging
- Standardize error handling across test files
Changes:
- Create setup_test_log_file() helper in common.rs
- Remove setup_test_logging() and setup_temp_log() functions
- Update test files to use common setup_test_log_file():
- test_log_detail_macro.rs
- test_log_timed_macro.rs
- test_different_log_levels.rs
- test_init_logging_with_file.rs
- test_init_logging_append_mode.rs
This change improves test maintainability by:
1. Reducing code duplication
2. Making test behavior more explicit
3. Improving test output for debugging
4. Following single responsibility principle