mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-25 00:00:18 +02:00
## Motivation `tokio-trace` currently offers a strategy for compatibility with the `log` crate: its macros can be dropped in as a replacement for `log`'s macros, and a subscriber can be used that translates trace events to log records. However, this requires the application to be aware of `tokio-trace` and manually set up this subscriber. Many libraries currently emit `log` records, and would like to be able to emit `tokio-trace` instrumentation instead. The `tokio` runtimes are one such example. However, with the current log compatibility strategy, replacing existing logging with trace instrumentation would break `tokio`'s logs for any downstream user which is using only `log` and not `tokio-trace`. It is desirable for libraries to have the option to emit both `log` _and_ `tokio-trace` diagnostics from the same instrumentation points. ## Solution This branch adds a `log` feature flag to the `tokio-trace` crate, which when set, causes `tokio-trace` instrumentation to emit log records as well as `tokio-trace` instrumentation. ## Notes In order to allow spans to log their names when they are entered and exited even when the span is disabled, this branch adds an `&'static Metadata` to the `Span` type. This was previously stored in the `Inner` type and was thus only present when the span was enabled. This makes disabled spans one word longer, but enabled spans remain the same size. Fixes: #949 Signed-off-by: Eliza Weisman <[email protected]>
44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
freebsd_instance:
|
|
image: freebsd-12-0-release-amd64
|
|
|
|
# Test FreeBSD in a full VM on cirrus-ci.com. Test the i686 target too, in the
|
|
# same VM. The binary will be built in 32-bit mode, but will execute on a
|
|
# 64-bit kernel and in a 64-bit environment. Our tests don't execute any of
|
|
# the system's binaries, so the environment shouldn't matter.
|
|
task:
|
|
name: FreeBSD 12.0
|
|
env:
|
|
LOOM_MAX_DURATION: 10
|
|
setup_script:
|
|
- pkg install -y curl
|
|
- curl https://sh.rustup.rs -sSf --output rustup.sh
|
|
- sh rustup.sh -y
|
|
- . $HOME/.cargo/env
|
|
- rustup target add i686-unknown-freebsd
|
|
- |
|
|
# Remove any existing patch statements
|
|
mv Cargo.toml Cargo.toml.bck
|
|
sed -n '/\[patch.crates-io\]/q;p' Cargo.toml.bck > Cargo.toml
|
|
|
|
# Patch all crates
|
|
cat ci/patch.toml >> Cargo.toml
|
|
|
|
# Print `Cargo.toml` for debugging
|
|
echo "~~~~ Cargo.toml ~~~~"
|
|
cat Cargo.toml
|
|
echo "~~~~~~~~~~~~~~~~~~~~"
|
|
cargo_cache:
|
|
folder: $HOME/.cargo/registry
|
|
test_script:
|
|
- . $HOME/.cargo/env
|
|
- cargo test --all --no-fail-fast
|
|
- (cd tokio-trace/test-log-support && cargo test)
|
|
- (cd tokio-trace/test_static_max_level_features && cargo test)
|
|
- cargo doc --all
|
|
i686_test_script:
|
|
- . $HOME/.cargo/env
|
|
- |
|
|
cargo test --all --exclude tokio-tls --no-fail-fast --target i686-unknown-freebsd
|
|
before_cache_script:
|
|
- rm -rf $HOME/.cargo/registry/index
|