Skip to content

Commit 65e09db

Browse files
committed
msrv 1.75, update deps
1 parent 1a758c1 commit 65e09db

File tree

5 files changed

+79
-29
lines changed

5 files changed

+79
-29
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
runs-on: ${{ matrix.os }}
1818
strategy:
1919
matrix:
20-
rust_versions: ["stable", "1.69"]
20+
rust_versions: ["stable", "1.75"]
2121
os: [ubuntu-latest, windows-latest]
2222
steps:
2323
- name: Checkout the source code
@@ -63,7 +63,7 @@ jobs:
6363
runs-on: ubuntu-latest
6464
strategy:
6565
matrix:
66-
rust_versions: ["stable", "1.69"]
66+
rust_versions: ["stable", "1.75"]
6767
steps:
6868
- name: Checkout the source code
6969
uses: actions/checkout@v4

CHANGELOG.md

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

3+
## [Unreleased]
4+
5+
### Changed
6+
7+
* MSRV to 1.75
8+
39
## [1.3.0]
410

511
### New

Cargo.toml

Lines changed: 58 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,34 @@
11
[package]
22
name = "log4rs"
33
version = "1.3.0"
4-
authors = ["Steven Fackler <sfackler@gmail.com>", "Evan Simmons <esims89@gmail.com>"]
4+
authors = [
5+
"Steven Fackler <sfackler@gmail.com>",
6+
"Evan Simmons <esims89@gmail.com>",
7+
]
58
description = "A highly configurable multi-output logging implementation for the `log` facade"
69
license = "MIT OR Apache-2.0"
710
repository = "https://github.com/estk/log4rs"
811
readme = "README.md"
912
keywords = ["log", "logger", "logging", "log4"]
1013
edition = "2018"
11-
rust-version = "1.69"
14+
rust-version = "1.75"
1215

1316
[features]
1417
default = ["all_components", "config_parsing", "yaml_format"]
1518

16-
config_parsing = ["humantime", "serde", "serde-value", "typemap-ors", "log/serde"]
19+
config_parsing = [
20+
"humantime",
21+
"serde",
22+
"serde-value",
23+
"typemap-ors",
24+
"log/serde",
25+
]
1726
yaml_format = ["serde_yaml"]
1827
json_format = ["serde_json"]
1928
toml_format = ["toml"]
2029

30+
31+
onstartup_trigger = []
2132
console_appender = ["console_writer", "simple_writer", "pattern_encoder"]
2233
file_appender = ["parking_lot", "simple_writer", "pattern_encoder"]
2334
rolling_file_appender = ["parking_lot", "simple_writer", "pattern_encoder"]
@@ -26,8 +37,22 @@ delete_roller = []
2637
fixed_window_roller = []
2738
size_trigger = []
2839
time_trigger = ["rand"]
29-
onstartup_trigger = []
30-
json_encoder = ["serde", "serde_json", "chrono", "log-mdc", "log/serde", "thread-id"]
40+
json_encoder = [
41+
"serde",
42+
"serde_json",
43+
"chrono",
44+
"log-mdc",
45+
"log/serde",
46+
"thread-id",
47+
]
48+
json_encoder = [
49+
"serde",
50+
"serde_json",
51+
"chrono",
52+
"log-mdc",
53+
"log/serde",
54+
"thread-id",
55+
]
3156
pattern_encoder = ["chrono", "log-mdc", "thread-id"]
3257
ansi_writer = []
3358
console_writer = ["ansi_writer", "libc", "winapi"]
@@ -47,7 +72,7 @@ all_components = [
4772
"onstartup_trigger",
4873
"json_encoder",
4974
"pattern_encoder",
50-
"threshold_filter"
75+
"threshold_filter",
5176
]
5277

5378
gzip = ["flate2"]
@@ -57,29 +82,43 @@ name = "rotation"
5782
harness = false
5883

5984
[dependencies]
60-
arc-swap = "1.6"
85+
6186
chrono = { version = "0.4.23", optional = true, features = ["clock"], default-features = false }
87+
arc-swap = "1.6"
88+
-chrono = { version = "0.4", optional = true, features = [
89+
"clock",
90+
], default-features = false }
91+
chrono = { version = "0.4.23", optional = true, features = [
92+
"clock",
93+
], default-features = false }
6294
flate2 = { version = "1.0", optional = true }
6395
fnv = "1.0"
6496
humantime = { version = "2.1", optional = true }
6597
log = { version = "0.4.20", features = ["std"] }
6698
log-mdc = { version = "0.1", optional = true }
6799
serde = { version = "1.0.196", optional = true, features = ["derive"] }
68100
serde-value = { version = "0.7", optional = true }
69-
thread-id = { version = "4", optional = true }
101+
thread-id = { version = "5", optional = true }
70102
typemap-ors = { version = "1.0.0", optional = true }
71103
serde_json = { version = "1.0", optional = true }
72104
serde_yaml = { version = "0.9", optional = true }
73105
toml = { version = "<0.8.10", optional = true }
74106
parking_lot = { version = "0.12.0", optional = true }
75-
rand = { version = "0.8", optional = true}
76-
thiserror = "1.0.15"
107+
rand = { version = "0.9", optional = true }
108+
thiserror = "2.0.12"
77109
anyhow = "1.0.28"
78110
derivative = "2.2"
79111
once_cell = "1.17.1"
112+
mock_instant = "0.5"
80113

81114
[target.'cfg(windows)'.dependencies]
82-
winapi = { version = "0.3", optional = true, features = ["handleapi", "minwindef", "processenv", "winbase", "wincon"] }
115+
winapi = { version = "0.3", optional = true, features = [
116+
"handleapi",
117+
"minwindef",
118+
"processenv",
119+
"winbase",
120+
"wincon",
121+
] }
83122

84123
[target.'cfg(not(windows))'.dependencies]
85124
libc = { version = "0.2", optional = true }
@@ -89,7 +128,6 @@ lazy_static = "1.4"
89128
streaming-stats = "0.2.3"
90129
humantime = "2.1"
91130
tempfile = "3.8"
92-
mock_instant = "0.3"
93131
serde_test = "1.0.176"
94132

95133
[[example]]
@@ -98,7 +136,11 @@ required-features = ["json_encoder", "console_appender"]
98136

99137
[[example]]
100138
name = "log_to_file"
101-
required-features = ["console_appender", "file_appender", "rolling_file_appender"]
139+
required-features = [
140+
"console_appender",
141+
"file_appender",
142+
"rolling_file_appender",
143+
]
102144

103145
[[example]]
104146
name = "compile_time_config"
@@ -111,3 +153,6 @@ required-features = ["file_appender", "rolling_file_appender", "size_trigger"]
111153
[[example]]
112154
name = "multi_logger_config"
113155
required-features = ["yaml_format", "config_parsing"]
156+
157+
[lints.rust]
158+
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(mock_time)'] }

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
[![crates.io](https://img.shields.io/crates/v/log4rs.svg)](https://crates.io/crates/log4rs)
55
[![License: MIT OR Apache-2.0](https://img.shields.io/crates/l/clippy.svg)](#license)
66
![CI](https://github.com/estk/log4rs/workflows/CI/badge.svg)
7-
[![Minimum rustc version](https://img.shields.io/badge/rustc-1.69+-green.svg)](https://github.com/estk/log4rs#rust-version-requirements)
7+
[![Minimum rustc version](https://img.shields.io/badge/rustc-1.75+-green.svg)](https://github.com/estk/log4rs#rust-version-requirements)
88

99
log4rs is a highly configurable logging framework modeled after Java's Logback
1010
and log4j libraries.
@@ -54,7 +54,7 @@ fn main() {
5454

5555
## Rust Version Requirements
5656

57-
1.69
57+
1.75
5858

5959
## Building for Dev
6060

src/append/rolling_file/policy/compound/trigger/time.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22
//!
33
//! Requires the `time_trigger` feature.
44
5-
#[cfg(test)]
6-
use chrono::NaiveDateTime;
75
use chrono::{DateTime, Datelike, Duration, Local, TimeZone, Timelike};
8-
#[cfg(test)]
9-
use mock_instant::{SystemTime, UNIX_EPOCH};
6+
107
use rand::Rng;
118
#[cfg(feature = "config_parsing")]
129
use serde::de;
@@ -176,22 +173,24 @@ impl TimeTrigger {
176173
/// Returns a new trigger which rolls the log once it has passed the
177174
/// specified time.
178175
pub fn new(config: TimeTriggerConfig) -> TimeTrigger {
179-
#[cfg(test)]
176+
#[cfg(mock_time)]
180177
let current = {
178+
use chrono::Local;
179+
use mock_instant::{SystemTime, UNIX_EPOCH};
180+
181181
let now: std::time::Duration = SystemTime::now()
182182
.duration_since(UNIX_EPOCH)
183183
.expect("system time before Unix epoch");
184-
NaiveDateTime::from_timestamp_opt(now.as_secs() as i64, now.subsec_nanos())
185-
.unwrap()
186-
.and_local_timezone(Local)
184+
DateTime::from_timestamp(now.as_secs() as i64, now.subsec_nanos())
187185
.unwrap()
186+
.with_timezone(&Local)
188187
};
189188

190-
#[cfg(not(test))]
189+
#[cfg(not(mock_time))]
191190
let current = Local::now();
192191
let next_time = TimeTrigger::get_next_time(current, config.interval, config.modulate);
193192
let next_roll_time = if config.max_random_delay > 0 {
194-
let random_delay = rand::thread_rng().gen_range(0..config.max_random_delay);
193+
let random_delay = rand::rng().random_range(0..config.max_random_delay);
195194
next_time + Duration::seconds(random_delay as i64)
196195
} else {
197196
next_time
@@ -278,7 +277,7 @@ impl TimeTrigger {
278277

279278
impl Trigger for TimeTrigger {
280279
fn trigger(&self, _file: &LogFile) -> anyhow::Result<bool> {
281-
#[cfg(test)]
280+
#[cfg(mock_time)]
282281
let current = {
283282
let now = SystemTime::now()
284283
.duration_since(UNIX_EPOCH)
@@ -289,7 +288,7 @@ impl Trigger for TimeTrigger {
289288
.unwrap()
290289
};
291290

292-
#[cfg(not(test))]
291+
#[cfg(not(mock_time))]
293292
let current: DateTime<Local> = Local::now();
294293
let mut next_roll_time = self.next_roll_time.write().unwrap();
295294
let is_trigger = current >= *next_roll_time;

0 commit comments

Comments
 (0)