Conversation
31a4b2c to
4914cf6
Compare
It is no longer necessary to lock the state to access configuration. This also completely removes the ability to change configuration at runtime -- we will provide specialized commands for changing the log level dynamically.
- Restored the correct interpretation of the 'trace_targets' setting
and removed the potential for errors when parsing it.
- Replaced 'EnvFilter' (which adds a lot of complexity) with a simple
manual filter implementation. It requires about the same number of
lines of code on our end.
- Replaced 'Result<_, String>' with a structured error type.
- Added 'RuntimeConfig' to account for runtime configuration, such as
logging.
- Changed 'apply()' to use 'RuntimeConfig', so it is only applicable to
dynamic runtime changes.
- Overhauled the syslog writer considerably:
- Moved the code under a 'cfg(unix)' submodule.
- Improved support for non-UTF-8 printing, for the hostname and
program name.
- Accounted for failures from all connection attempts in the
connection error type.
- Disabled Nagle's algorithm for TCP connections instead of flushing
bytes explicitly (which is an extra syscall).
- Added IPv6 support for UDP and TCP connections.
The 'cascade config reload' command is removed in favor of a specialized command for changing logging behaviour, 'cascade debug change-logging'.
4914cf6 to
e212184
Compare
Philip-NLnetLabs
approved these changes
Nov 14, 2025
bal-e
added a commit
that referenced
this pull request
Nov 21, 2025
I forgot to update the documentation!
bal-e
added a commit
that referenced
this pull request
Nov 21, 2025
I forgot to update the documentation!
bal-e
added a commit
that referenced
this pull request
Nov 21, 2025
I forgot to update the documentation!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We have decided that Cascade will load configuration on startup, and that changes to configuration necessitate restarting it. The only part of configuration that could change dynamically is the log level. So, I've moved the actual
configfield fromStatetoCenter. This eliminates a number of mutex locks and some boilerplate bookkeeping. This also removescascade config reload; we need to discuss the appropriate CLI for modifying the log level and add that in a separate PR.