Skip to content

Commit 7440f4c

Browse files
Merge branch 'main' into RobertJacobsonCDC-upendra1997-adding-wasm-as-target
2 parents f0ed876 + b0f01ee commit 7440f4c

File tree

6 files changed

+66
-38
lines changed

6 files changed

+66
-38
lines changed

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Change Log
22

3+
## [1.4.0]
4+
5+
### Fixed
6+
7+
* Two minor typo fixes in `Configuration.md`. (#425 @RobertJacobsonCDC)
8+
9+
### New
10+
11+
* Support for Key-Value pairs (#362 @ellttBen)
12+
* Add time serialization into log file (#374 @TuEmb)
13+
* Public `TimeTriggerConfig` fields (#370 @Dirreke)
14+
* Left truncation unicode support (#285 @moh-eulith)
15+
* Zstd compression for log files (#363 @cristian-prato)
16+
* Add onstartup trigger (#343 @Dirreke)
17+
* Add config parsing tests (#357 @bconn98)
18+
* Add handle retrieval after log initialization (#393 @izolyomi)
19+
20+
### Changed
21+
22+
* update mock_instant and small refactor (#424 @CosminPerRam)
23+
* remove oncecell dependency (#423 @CosminPerRam)
24+
* MSRV to 1.75
25+
* Update deps: (thread-id, thiserror, mock_instant, rand)
26+
* Remove derivative crate (#408 @royb3)
27+
* Remove where_clauses_object_safety lint allow (#377 @Dirreke)
28+
* Refactor of time trigger logic (#347 @Dirreke)
29+
* Readme updated (#361 @bconn98)
30+
331
## [1.4.0-rc2]
432

533
### Changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "log4rs"
3-
version = "1.4.0-rc2"
3+
version = "1.4.0"
44
authors = [
55
"Steven Fackler <[email protected]>",
66
"Evan Simmons <[email protected]>",
@@ -48,7 +48,7 @@ console_writer = ["ansi_writer", "libc", "winapi"]
4848
simple_writer = []
4949
threshold_filter = []
5050
background_rotation = []
51-
log_kv = ["log/kv"]
51+
log_kv = ["log/kv", "log/kv_serde"]
5252

5353
all_components = [
5454
"console_appender",

src/append/console.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ enum Writer {
5252
}
5353

5454
impl Writer {
55-
fn lock(&self) -> WriterLock {
55+
fn lock(&self) -> WriterLock<'_> {
5656
match *self {
5757
Writer::Tty(ref w) => WriterLock::Tty(w.lock()),
5858
Writer::Raw(ref w) => WriterLock::Raw(SimpleWriter(w.lock())),

src/encode/json.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ mod kv {
189189
value: log::kv::Value<'kvs>,
190190
) -> Result<(), log::kv::Error> {
191191
self.0
192-
.serialize_entry(key.as_str(), &value.to_string())
192+
.serialize_entry(key.as_str(), &value)
193193
.map_err(|e| log::kv::Error::boxed(e.to_string()))?;
194194
Ok(())
195195
}
@@ -213,7 +213,7 @@ mod kv {
213213
mod test {
214214
#[cfg(feature = "chrono")]
215215
use chrono::{DateTime, Local};
216-
use log::Level;
216+
use log::{Level, Record};
217217

218218
use super::*;
219219
use crate::encode::writer::simple::SimpleWriter;
@@ -232,6 +232,15 @@ mod test {
232232
let thread = "encode::json::test::default";
233233
log_mdc::insert("foo", "bar");
234234

235+
#[cfg(feature = "log_kv")]
236+
#[derive(serde::Serialize)]
237+
struct SerdeValue {
238+
id: u32,
239+
}
240+
241+
#[cfg(feature = "log_kv")]
242+
let serde_value = SerdeValue { id: 42 };
243+
235244
let encoder = JsonEncoder::new();
236245

237246
let mut record_builder = Record::builder();
@@ -243,19 +252,25 @@ mod test {
243252
.line(Some(line));
244253

245254
#[cfg(feature = "log_kv")]
246-
record_builder.key_values(&[("log_foo", "log_bar")]);
255+
let kvs = [
256+
("log_foo", log::kv::Value::from("log_bar")),
257+
("serde_val", log::kv::Value::from_serde(&serde_value)),
258+
];
259+
#[cfg(feature = "log_kv")]
260+
record_builder.key_values(&kvs);
247261

248262
let mut buf = vec![];
249263
encoder
250264
.encode_inner(
251265
&mut SimpleWriter(&mut buf),
252266
time,
253-
&record_builder.args(format_args!("{}", message)).build(),
267+
&record_builder.args(format_args!("{message}")).build(),
254268
)
255269
.unwrap();
256270

257271
#[cfg(feature = "log_kv")]
258-
let expected_attributes = ",\"attributes\":{\"log_foo\":\"log_bar\"}";
272+
let expected_attributes =
273+
",\"attributes\":{\"log_foo\":\"log_bar\",\"serde_val\":{\"id\":42}}";
259274
#[cfg(not(feature = "log_kv"))]
260275
let expected_attributes = "";
261276

src/encode/writer/console.rs

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ impl ConsoleWriter {
6767
}
6868

6969
/// Locks the console, preventing other threads from writing concurrently.
70-
pub fn lock(&self) -> ConsoleWriterLock {
70+
pub fn lock(&self) -> ConsoleWriterLock<'_> {
7171
ConsoleWriterLock(self.0.lock())
7272
}
7373
}
@@ -172,7 +172,7 @@ mod imp {
172172
}
173173
}
174174

175-
pub fn lock(&self) -> WriterLock {
175+
pub fn lock(&self) -> WriterLock<'_> {
176176
WriterLock(AnsiWriter((self.0).0.lock()))
177177
}
178178
}
@@ -410,9 +410,13 @@ mod imp {
410410
}
411411

412412
impl Writer {
413-
pub fn stdout() -> Option<Writer> {
413+
fn create_writer(inner_writer: StdWriter) -> Option<Writer> {
414414
unsafe {
415-
let handle = processenv::GetStdHandle(winbase::STD_OUTPUT_HANDLE);
415+
let handle = match inner_writer {
416+
StdWriter::Stdout(_) => processenv::GetStdHandle(winbase::STD_OUTPUT_HANDLE),
417+
StdWriter::Stderr(_) => processenv::GetStdHandle(winbase::STD_ERROR_HANDLE),
418+
};
419+
416420
if handle.is_null() || handle == handleapi::INVALID_HANDLE_VALUE {
417421
return None;
418422
}
@@ -427,7 +431,7 @@ mod imp {
427431
handle,
428432
defaults: info.wAttributes,
429433
},
430-
inner: StdWriter::stdout(),
434+
inner: inner_writer,
431435
};
432436

433437
match color_mode() {
@@ -437,31 +441,12 @@ mod imp {
437441
}
438442
}
439443

440-
pub fn stderr() -> Option<Writer> {
441-
unsafe {
442-
let handle = processenv::GetStdHandle(winbase::STD_ERROR_HANDLE);
443-
if handle.is_null() || handle == handleapi::INVALID_HANDLE_VALUE {
444-
return None;
445-
}
446-
447-
let mut info = mem::zeroed();
448-
if wincon::GetConsoleScreenBufferInfo(handle, &mut info) == 0 {
449-
return None;
450-
}
451-
452-
let writer = Writer {
453-
console: RawConsole {
454-
handle,
455-
defaults: info.wAttributes,
456-
},
457-
inner: StdWriter::stdout(),
458-
};
444+
pub fn stdout() -> Option<Writer> {
445+
Self::create_writer(StdWriter::stdout())
446+
}
459447

460-
match color_mode() {
461-
ColorMode::Auto | ColorMode::Always => Some(writer),
462-
ColorMode::Never => None,
463-
}
464-
}
448+
pub fn stderr() -> Option<Writer> {
449+
Self::create_writer(StdWriter::stderr())
465450
}
466451

467452
pub fn lock<'a>(&'a self) -> WriterLock<'a> {

src/priv_io.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ impl StdWriter {
1717
StdWriter::Stderr(io::stderr())
1818
}
1919

20-
pub fn lock(&self) -> StdWriterLock {
20+
pub fn lock(&self) -> StdWriterLock<'_> {
2121
match *self {
2222
StdWriter::Stdout(ref w) => StdWriterLock::Stdout(w.lock()),
2323
StdWriter::Stderr(ref w) => StdWriterLock::Stderr(w.lock()),

0 commit comments

Comments
 (0)