Fixes the use of high and low in variable names, as these are determined by ripple::keylet::line processing.
Co-authored-by: RichardAH <richard.holland@starstone.co.nz>
GNU FTP mirrors can be extremely slow, causing CI failures when downloading
dependencies like libtool. Increasing CONAN_REQUEST_TIMEOUT from default
60s to 180s to handle these slow downloads.
Removes the LocationPosition enum and complex position logic. Now
file:line info always appears as a suffix (the most readable option)
and can be disabled with LOG_DISABLE=1. This removes ~20 lines of
code and one environment variable while maintaining functionality.
Since Xahau now exclusively uses Conan for builds, we can remove the
conditional check for conan_toolchain. The enhanced logging feature
now simply defaults to ON for Debug builds and OFF for Release builds.
std::endl triggers flush() which calls sync() on the shared log buffer.
Multiple threads racing in sync() cause str()/str("") operations to
corrupt buffer state, leading to crashes and double frees.
Added mutex to serialize access to suite.log, preventing concurrent
sync() calls on the same buffer.
Add concise comments explaining why environment variables are used
instead of config file settings for the enhanced logging feature:
- Logging needs to start before config parsing
- Developer feature where env vars are convenient
- Allows per-run overrides without config changes
- More intuitive naming for users
- Changed get_log_highlight_escape() to get_log_highlight_color()
- Updated all references and comments
- Functionality remains the same, just clearer naming
- Add BEAST_ENHANCED_LOGGING CMake option for build-time control
- Implement file:line logging with customizable position (prefix/suffix/none)
via LOG_LOCATION_POSITION env var (defaults to suffix for readability)
- Add flexible timestamp formatting via LOG_DATE_FORMAT (date::format syntax)
- Add local timezone support via LOG_DATE_LOCAL env var
- Support customizable highlight colors via LOG_HIGHLIGHT_ESCAPE env var
(red, green, yellow, blue, magenta, cyan, white, gray, orange, none)
- Apply consistent highlighting to both file:line and partition:severity
- Centralize all enhanced logging features in beast_EnhancedLogging module
- Smart TTY detection with NO_COLOR/FORCE_COLOR support
- Constexpr path stripping using SOURCE_ROOT_PATH
- Move implementations to .cpp files to minimize recompilation
- Update zlib to 1.3.1 to fix macOS 15.5 build issues
- Enable date-tz library for timezone support
Example output with defaults:
2025-Jul-26 15:20:07.124745 NetworkOPs:NFO STATE->connected [ripple/app/misc/NetworkOPs.cpp:2264]
Environment variables:
LOG_LOCATION_POSITION=suffix # or prefix, none
LOG_HIGHLIGHT_ESCAPE=cyan # or red, green, yellow, etc
LOG_DATE_FORMAT=%Y-%b-%d %r.%f %Z # custom timestamp format
LOG_DATE_LOCAL=1 # use local timezone
Zero runtime cost when disabled - all features are build-time conditional.
Backward compatible - no changes when BEAST_ENHANCED_LOGGING is not defined.
- Add LOG_LOCATION_POSITION env var to control file:line placement (prefix/suffix/none)
- Add LOG_DATE_FORMAT env var for custom timestamp formats (supports date::format syntax)
- Add LOG_DATE_LOCAL env var to use local timezone instead of UTC
- Add LOG_LOCATION_ESCAPE env var for custom colors (red/green/cyan/etc)
- Default to suffix position for better readability
- Move implementation to .cpp files to reduce recompilation
- Update zlib to 1.3.1 to fix macOS build issues
- Enable date-tz library for timezone support
Move location logging functions from Journal.h to beast_Journal.cpp to avoid
recompilation of all dependent files when color mappings change.
- Move detail::shouldUseColors() to cpp (env var checks, isatty call)
- Move detail::getLocationEscape() to cpp (color name mappings)
- Move writeLocationPrefix() to cpp (formatting logic)
- Add support for LOG_LOCATION_ESCAPE env var with color names:
red, green, yellow, blue, magenta, cyan, white, gray/grey, orange, none
- Default remains cyan for backward compatibility
This significantly reduces compilation time when tweaking log colors.
- Replace logMftAct template functions with macros to preserve call site line numbers
- Use do-while(0) pattern to avoid dangling else warnings
- Add #undef at end of file to prevent namespace pollution
- Maintains exact same log format while fixing line number attribution
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add conditional logic to handle log messages with [file:line] prefix
- Use find() instead of starts_with() when LOG_LINE_NUMBERS is enabled
- Ensures tests pass whether file:line logging is on or off
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add LOG_LINE_NUMBERS CMake option (ON for Debug, OFF for Release)
- Implement constexpr path stripping using SOURCE_ROOT_PATH
- Add smart TTY detection with NO_COLOR/FORCE_COLOR support
- Extend Journal::ScopedStream with file/line constructor
- Update JLOG macro to conditionally include source location
- Maintain backward compatibility when disabled
* Match unit tests on start of test name (#4634)
* For example, without this change, to run the TxQ tests, must specify
`--unittest=TxQ1,TxQ2` on the command line. With this change, can use
`--unittest=TxQ`, and both will be run.
* An exact match will prevent any further partial matching.
* This could have some side effects for different tests with a common
name beginning. For example, NFToken, NFTokenBurn, NFTokenDir. This
might be useful. If not, the shorter-named test(s) can be renamed. For
example, NFToken to NFTokens.
* Split the NFToken, NFTokenBurn, and Offer test classes. Potentially speeds
up parallel tests by a factor of 5.
* SetHook_test, SetHookTSH_test, XahauGenesis_test
---------
Co-authored-by: Ed Hennis <ed@ripple.com>