1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
[]
= "slog"
= "2.8.2"
= ["Dawid Ciężarkiewicz <dpc@dpc.pw>"]
= "Structured, extensible, composable logging for Rust"
= ["log", "logging", "structured", "hierarchical"]
= ["development-tools::debugging"]
= "MPL-2.0 OR MIT OR Apache-2.0"
= "https://docs.rs/slog"
= "https://github.com/slog-rs/slog"
= "https://github.com/slog-rs/slog"
= "README.md"
= "2018"
# This is our Minimum Supported Rust Version (MSRV)
#
# See the wiki for our full policy on changing this.
#
# There are two main requirements:
# 1. Bumping the MSRV requires increasing the minor version number (2.7 -> 2.8)
# 2. Changes must be clearly announced in the CHANGELOG.md file
# 3. At a minimum, we must support at least the latest stable rust, minus 15 releases.
# - We can (and very often do) support versions much older than this.
# - See wiki for for details
#
# This must be kept in sync with the following places:
# - .github/workflows/test.yml (Github Actions)
# - README.md
# - clippy.toml (Clippy config)
= "1.61"
[]
= 3
= false
= true
= false
[]
= 3
= false
= true
= false
[]
= ["std", "nested-values"]
# Support nesting values in log messages using serde
#
# Using this is recommended to improve the detail of log messages.
# Without it, only flat values like numbers and strings can be logged.
# This requires the underlying logger to support this feature,
# usually requiring a nested-values feature flag on the logging backend.
= ["dep:erased-serde", "dep:serde_core"]
# DANGER: Use a String for slog::Key insated of &'static str
#
# This is discouraged, becauase it can break other libraries relying on slog.
# If you really need to dynamically allocate keys, you can use String::leak to achieve the same functionality
# without breaking other libraries.
= []
# Require the standard library.
= ["serde_core?/std", "anyhow?/std"]
# DANGER: Remove the Send + Sync bound from the default logger and drain.
#
# This feature is highly discouraged, because it could break other libraries relying on slog.
# It is possible to achieve the same functionality by using a custom drain parameter to slog::Logger,
# which will not break other libraries and avoids the overhead of an Arc.
= []
# Implement slog::Value for anyhow::Error
= ["dep:anyhow"]
# Implement slog::Drain for parking_lot::Mutex.
#
# Each version of parking_lot has a separate feature name,
# so that multiple versions of parking_lot can be supported at once without causing conflicts.
# This works because Cargo supports depending on multiple versions of the same crate,
# and Rust considers parking_lot_0_12::Mutex and parking_lot1::Mutex as completely different types.
#
# Compatibility Guarantees:
# New versions of parking_lot can be added in a patch version of slog (2.8.1 -> 2.8.2)
#
# Support for an old version of parking_lot will be reatined as long as reasonably possible,
# and only removed if it causes significant issues or is known to be severely buggy.
# In the exceptional event that support for an old version is removed,
# it will only happen in a slog minor version upgrade (2.8 -> 2.9), never in a patch version upgrade.
#
# A hypothetical parking_lot v1.0 release would be named `parking_lot1` rather than `parking_lot_1`.
= ["dep:parking_lot_0_12"]
# Control the log level at compile-time
= []
= []
= []
= []
= []
= []
= []
= []
= []
= []
= []
= []
[]
# Depending on serde_core rather than serde reduces compile times (added in serde v1.0.200)
= { = "1", = true, = false }
= { = "1", = true, = false }
= { = "parking_lot", = "0.12", = true }
[]
# For Slog 2.x, we keep compat with `erased-serde 0.3` as it's a public
# dependency, even if newer major versions are available.
# erased-serde 0.3 has MSRV 1.56, which is stronger than our MSRV (1.61)
= "0.3"
= true
= false
= ["alloc"] # erased-serde always requires alloc, and so does slog
[]
# rustversion v1.0.6 added the rustversion::cfg! macro
= "1.0.6"
[]
# NOTE: This is just a macro (not a runtime dependency)
#
# It is used to conditionally enable use of newer rust language
# features depending on the compiler features.
= "1.0.6"
# first version to support serde_core
= "1.0.220"
= "1.0.220"
[[]]
= "singlethread"
= ["nothreads"]
[]
# Should enable most features
= [
"std",
"nested-values",
"dynamic-keys",
"anyhow",
"parking_lot_0_12"
]
[]
= [
"crates/test_edition2018",
]