]> git.proxmox.com Git - rustc.git/blob - vendor/log/CHANGELOG.md
New upstream version 1.62.1+dfsg1
[rustc.git] / vendor / log / CHANGELOG.md
1 # Change Log
2
3 ## [Unreleased]
4
5 ## [0.4.16] - 2022-03-22
6
7 * Fix a conflict with unqualified `Option` use in macros.
8
9 ## [0.4.15] - 2022-02-23
10
11 * Silence a warning about the deprecated `spin_loop_hint`.
12 * Relax ordering in the atomic `set_max_level` call.
13 * Add thumbv4t-none-eabi to targets that don't support atomics
14 * Allow levels to be iterated over.
15 * Implement `Log` on some common wrapper types.
16 * Improvements to test coverage.
17 * Improvements to documentation.
18 * Add key-value support to the `log!` macros.
19 * Tighten `kv_unstable` internal dependencies so they don't bump past their current alpha.
20 * Add a simple visit API to `kv_unstable`.
21 * Support `NonZero*` integers as values in structured logging
22 * Support static strings as keys in structured logging
23
24 ## [0.4.14] - 2021-01-27
25
26 * Remove the `__private_api_log_lit` special case.
27 * Fixed incorrect combination of `kv_unstable` and `std` features causing compile failures.
28 * Remove unstable `Value::to_*` conversions that were incorrectly using `as`.
29 * Rename unstable `Value::to_error` to `Value::to_borrowed_error`.
30
31 ## [0.4.13] - 2021-01-11
32
33 * This is the same as `0.4.11`, except with a `kv_unstable_std` feature added to aid migrating current dependents to `0.4.14` (which was originally going to be `0.4.13` until it was decided to create a patch from `0.4.11` to minimize disruption).
34
35 ## [0.4.12] - 2020-12-24
36
37 ### New
38
39 * Support platforms without atomics by racing instead of failing to compile
40 * Implement `Log` for `Box<T: Log>`
41 * Update `cfg-if` to `1.0`
42 * Internal reworks of the structured logging API. Removed the `Fill` API
43 and added `source::as_map` and `source::as_list` to easily serialize a `Source`
44 as either a map of `{key: value, ..}` or as a list of `[(key, value), ..]`.
45
46 ### Fixed
47
48 * Fixed deserialization of `LevelFilter` to use their `u64` index variants
49
50 ## [0.4.11] - 2020-07-09
51
52 ### New
53
54 * Support coercing structured values into concrete types.
55 * Reference the `win_dbg_logger` in the readme.
56
57 ### Fixed
58
59 * Updates a few deprecated items used internally.
60 * Fixed issues in docs and expands sections.
61 * Show the correct build badge in the readme.
62 * Fix up a possible inference breakage with structured value errors.
63 * Respect formatting flags in structured value formatting.
64
65 ## [0.4.10] - 2019-12-16 (yanked)
66
67 ### Fixed
68
69 * Fixed the `log!` macros so they work in expression context (this regressed in `0.4.9`, which has been yanked).
70
71 ## [0.4.9] - 2019-12-12 (yanked)
72
73 ### Minimum Supported Rust Version
74
75 This release bumps the minimum compiler version to `1.31.0`. This was mainly needed for `cfg-if`,
76 but between `1.16.0` and `1.31.0` there are a lot of language and library improvements we now
77 take advantage of.
78
79 ### New
80
81 * Unstable support for capturing key-value pairs in a record using the `log!` macros
82
83 ### Improved
84
85 * Better documentation for max level filters.
86 * Internal updates to line up with bumped MSRV
87
88 ## [0.4.8] - 2019-07-28
89
90 ### New
91
92 * Support attempting to get `Record` fields as static strings.
93
94 ## [0.4.7] - 2019-07-06
95
96 ### New
97
98 * Support for embedded environments with thread-unsafe initialization.
99 * Initial unstable support for capturing structured data under the `kv_unstable`
100 feature gate. This new API doesn't affect existing users and may change in future
101 patches (so those changes may not appear in the changelog until it stabilizes).
102
103 ### Improved
104
105 * Docs for using `log` with the 2018 edition.
106 * Error messages for macros missing arguments.
107
108 ## [0.4.6] - 2018-10-27
109
110 ### Improved
111
112 * Support 2018-style macro import for the `log_enabled!` macro.
113
114 ## [0.4.5] - 2018-09-03
115
116 ### Improved
117
118 * Make `log`'s internal helper macros less likely to conflict with user-defined
119 macros.
120
121 ## [0.4.4] - 2018-08-17
122
123 ### Improved
124
125 * Support 2018-style imports of the log macros.
126
127 ## [0.4.3] - 2018-06-29
128
129 ### Improved
130
131 * More code generation improvements.
132
133 ## [0.4.2] - 2018-06-05
134
135 ### Improved
136
137 * Log invocations now generate less code.
138
139 ### Fixed
140
141 * Example Logger implementations now properly set the max log level.
142
143 ## [0.4.1] - 2017-12-30
144
145 ### Fixed
146
147 * Some doc links were fixed.
148
149 ## [0.4.0] - 2017-12-24
150
151 The changes in this release include cleanup of some obscure functionality and a more robust public
152 API designed to support bridges to other logging systems, and provide more flexibility to new
153 features in the future.
154
155 ### Compatibility
156
157 Vast portions of the Rust ecosystem use the 0.3.x release series of log, and we don't want to force
158 the community to go through the pain of upgrading every crate to 0.4.x at the exact same time. Along
159 with 0.4.0, we've published a new 0.3.9 release which acts as a "shim" over 0.4.0. This will allow
160 crates using either version to coexist without losing messages from one side or the other.
161
162 There is one caveat - a log message generated by a crate using 0.4.x but consumed by a logging
163 implementation using 0.3.x will not have a file name or module path. Applications affected by this
164 can upgrade their logging implementations to one using 0.4.x to avoid losing this information. The
165 other direction does not lose any information, fortunately!
166
167 **TL;DR** Libraries should feel comfortable upgrading to 0.4.0 without treating that as a breaking
168 change. Applications may need to update their logging implementation (e.g. env-logger) to a newer
169 version using log 0.4.x to avoid losing module and file information.
170
171 ### New
172
173 * The crate is now `no_std` by default.
174 * `Level` and `LevelFilter` now implement `Serialize` and `Deserialize` when the `serde` feature is
175 enabled.
176 * The `Record` and `Metadata` types can now be constructed by third-party code via a builder API.
177 * The `logger` free function returns a reference to the logger implementation. This, along with the
178 ability to construct `Record`s, makes it possible to bridge from another logging framework to
179 this one without digging into the private internals of the crate. The standard `error!` `warn!`,
180 etc, macros now exclusively use the public API of the crate rather than "secret" internal APIs.
181 * `Log::flush` has been added to allow crates to tell the logging implementation to ensure that all
182 "in flight" log events have been persisted. This can be used, for example, just before an
183 application exits to ensure that asynchronous log sinks finish their work.
184
185 ### Removed
186
187 * The `shutdown` and `shutdown_raw` functions have been removed. Supporting shutdown significantly
188 complicated the implementation and imposed a performance cost on each logging operation.
189 * The `log_panics` function and its associated `nightly` Cargo feature have been removed. Use the
190 [log-panics](https://crates.io/crates/log-panics) instead.
191
192 ### Changed
193
194 * The `Log` prefix has been removed from type names. For example, `LogLevelFilter` is now
195 `LevelFilter`, and `LogRecord` is now `Record`.
196 * The `MaxLogLevelFilter` object has been removed in favor of a `set_max_level` free function.
197 * The `set_logger` free functions have been restructured. The logger is now directly passed to the
198 functions rather than a closure which returns the logger. `set_logger` now takes a `&'static
199 Log` and is usable in `no_std` contexts in place of the old `set_logger_raw`. `set_boxed_logger`
200 is a convenience function which takes a `Box<Log>` but otherwise acts like `set_logger`. It
201 requires the `std` feature.
202 * The `file` and `module_path` values in `Record` no longer have the `'static` lifetime to support
203 integration with other logging frameworks that don't provide a `'static` lifetime for the
204 equivalent values.
205 * The `file`, `line`, and `module_path` values in `Record` are now `Option`s to support integration
206 with other logging frameworks that don't provide those values.
207
208 ### In the Future
209
210 * We're looking to add support for *structured* logging - the inclusion of extra key-value pairs of
211 information in a log event in addition to the normal string message. This should be able to be
212 added in a backwards compatible manner to the 0.4.x series when the design is worked out.
213
214 ## Older
215
216 Look at the [release tags] for information about older releases.
217
218 [Unreleased]: https://github.com/rust-lang-nursery/log/compare/0.4.16...HEAD
219 [0.4.16]: https://github.com/rust-lang-nursery/log/compare/0.4.15...0.4.16
220 [0.4.15]: https://github.com/rust-lang-nursery/log/compare/0.4.13...0.4.15
221 [0.4.14]: https://github.com/rust-lang-nursery/log/compare/0.4.13...0.4.14
222 [0.4.13]: https://github.com/rust-lang-nursery/log/compare/0.4.11...0.4.13
223 [0.4.12]: https://github.com/rust-lang-nursery/log/compare/0.4.11...0.4.12
224 [0.4.11]: https://github.com/rust-lang-nursery/log/compare/0.4.10...0.4.11
225 [0.4.10]: https://github.com/rust-lang-nursery/log/compare/0.4.9...0.4.10
226 [0.4.9]: https://github.com/rust-lang-nursery/log/compare/0.4.8...0.4.9
227 [0.4.8]: https://github.com/rust-lang-nursery/log/compare/0.4.7...0.4.8
228 [0.4.7]: https://github.com/rust-lang-nursery/log/compare/0.4.6...0.4.7
229 [0.4.6]: https://github.com/rust-lang-nursery/log/compare/0.4.5...0.4.6
230 [0.4.5]: https://github.com/rust-lang-nursery/log/compare/0.4.4...0.4.5
231 [0.4.4]: https://github.com/rust-lang-nursery/log/compare/0.4.3...0.4.4
232 [0.4.3]: https://github.com/rust-lang-nursery/log/compare/0.4.2...0.4.3
233 [0.4.2]: https://github.com/rust-lang-nursery/log/compare/0.4.1...0.4.2
234 [0.4.1]: https://github.com/rust-lang-nursery/log/compare/0.4.0...0.4.1
235 [0.4.0]: https://github.com/rust-lang-nursery/log/compare/0.3.8...0.4.0
236 [release tags]: https://github.com/rust-lang-nursery/log/releases