Skip to content

Commit ad95f77

Browse files
committed
add pub fn logger()
1 parent 608ea91 commit ad95f77

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ members = [
66

77
[package]
88
name = "fast_log"
9-
version = "1.7.0"
9+
version = "1.7.1"
1010
description = "Rust async log High-performance asynchronous logging"
1111
readme = "Readme.md"
1212
authors = ["ce <zhuxiujia@qq.com>"]

src/fast_log.rs

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@ use crate::{chan, spawn, Receiver, SendError, Sender, WaitGroup};
55
use log::{LevelFilter, Log, Metadata, Record};
66
use std::sync::{Arc, OnceLock};
77
use std::time::SystemTime;
8+
89
pub static LOGGER: OnceLock<Logger> = OnceLock::new();
910

11+
/// get Logger,but you must call `fast_log::init`
12+
pub fn logger() -> &'static Logger {
13+
LOGGER.get_or_init(|| { Logger::default() })
14+
}
15+
1016
pub struct Logger {
1117
pub cfg: OnceLock<Config>,
1218
pub send: OnceLock<Sender<FastLogRecord>>,
@@ -43,7 +49,7 @@ impl Logger {
4349
now: SystemTime::now(),
4450
formated: log,
4551
};
46-
if let Some(send) = LOGGER.get_or_init(||{ Logger::default() }).send.get() {
52+
if let Some(send) = LOGGER.get_or_init(|| { Logger::default() }).send.get() {
4753
send.send(fast_log_record)
4854
} else {
4955
// Ok(())
@@ -61,8 +67,8 @@ impl Log for Logger {
6167
metadata.level() <= self.get_level()
6268
}
6369
fn log(&self, record: &Record) {
64-
if let Some(filter) = LOGGER.get_or_init(||{ Logger::default() }).cfg.get() {
65-
if let Some(send) = LOGGER.get_or_init(||{ Logger::default() }).send.get() {
70+
if let Some(filter) = LOGGER.get_or_init(|| { Logger::default() }).cfg.get() {
71+
if let Some(send) = LOGGER.get_or_init(|| { Logger::default() }).send.get() {
6672
for filter in filter.filters.iter() {
6773
if !filter.do_log(record) {
6874
return;
@@ -97,21 +103,21 @@ pub fn init(config: Config) -> Result<&'static Logger, LogError> {
97103
return Err(LogError::from("[fast_log] appends can not be empty!"));
98104
}
99105
let (s, r) = chan(config.chan_len);
100-
LOGGER.get_or_init(||{ Logger::default() }).send.set(s).map_err(|_| LogError::from("set fail"))?;
101-
LOGGER.get_or_init(||{ Logger::default() }).recv.set(r).map_err(|_| LogError::from("set fail"))?;
102-
LOGGER.get_or_init(||{ Logger::default() }).set_level(config.level);
103-
LOGGER.get_or_init(||{ Logger::default() })
106+
LOGGER.get_or_init(|| { Logger::default() }).send.set(s).map_err(|_| LogError::from("set fail"))?;
107+
LOGGER.get_or_init(|| { Logger::default() }).recv.set(r).map_err(|_| LogError::from("set fail"))?;
108+
LOGGER.get_or_init(|| { Logger::default() }).set_level(config.level);
109+
LOGGER.get_or_init(|| { Logger::default() })
104110
.cfg
105111
.set(config)
106112
.map_err(|_| LogError::from("set fail="))?;
107113
//main recv data
108-
log::set_logger(LOGGER.get_or_init(||{ Logger::default() }))
109-
.map(|()| log::set_max_level(LOGGER.get_or_init(||{ Logger::default() }).cfg.get().unwrap().level))
114+
log::set_logger(LOGGER.get_or_init(|| { Logger::default() }))
115+
.map(|()| log::set_max_level(LOGGER.get_or_init(|| { Logger::default() }).cfg.get().unwrap().level))
110116
.map_err(|e| LogError::from(e))?;
111117

112118
let mut receiver_vec = vec![];
113119
let mut sender_vec: Vec<Sender<Arc<Vec<FastLogRecord>>>> = vec![];
114-
let cfg = LOGGER.get_or_init(||{ Logger::default() }).cfg.get().unwrap();
120+
let cfg = LOGGER.get_or_init(|| { Logger::default() }).cfg.get().unwrap();
115121
for a in cfg.appends.iter() {
116122
let (s, r) = chan(cfg.chan_len);
117123
sender_vec.push(s);
@@ -166,7 +172,7 @@ pub fn init(config: Config) -> Result<&'static Logger, LogError> {
166172
let senders = sender_vec.clone();
167173
spawn(move || {
168174
loop {
169-
let recv = LOGGER.get_or_init(||{ Logger::default() }).recv.get().unwrap();
175+
let recv = LOGGER.get_or_init(|| { Logger::default() }).recv.get().unwrap();
170176
let mut remain = Vec::with_capacity(recv.len());
171177
//recv
172178
if recv.len() == 0 {
@@ -188,7 +194,7 @@ pub fn init(config: Config) -> Result<&'static Logger, LogError> {
188194
let mut exit = false;
189195
for x in &mut remain {
190196
if x.formated.is_empty() {
191-
LOGGER.get_or_init(||{ Logger::default() }).cfg.get().unwrap().format.do_format(x);
197+
LOGGER.get_or_init(|| { Logger::default() }).cfg.get().unwrap().format.do_format(x);
192198
}
193199
if x.command.eq(&Command::CommandExit) {
194200
exit = true;
@@ -204,7 +210,7 @@ pub fn init(config: Config) -> Result<&'static Logger, LogError> {
204210
}
205211
});
206212
}
207-
return Ok(LOGGER.get_or_init(||{ Logger::default() }));
213+
return Ok(LOGGER.get_or_init(|| { Logger::default() }));
208214
}
209215

210216
pub fn exit() -> Result<(), LogError> {
@@ -219,7 +225,7 @@ pub fn exit() -> Result<(), LogError> {
219225
now: SystemTime::now(),
220226
formated: String::new(),
221227
};
222-
let result = LOGGER.get_or_init(||{ Logger::default() })
228+
let result = LOGGER.get_or_init(|| { Logger::default() })
223229
.send
224230
.get()
225231
.ok_or_else(|| LogError::from("not init"))?
@@ -246,7 +252,7 @@ pub fn flush() -> Result<WaitGroup, LogError> {
246252
now: SystemTime::now(),
247253
formated: String::new(),
248254
};
249-
let result = LOGGER.get_or_init(||{ Logger::default() })
255+
let result = LOGGER.get_or_init(|| { Logger::default() })
250256
.send
251257
.get()
252258
.ok_or_else(|| LogError::from("not init"))?
@@ -261,5 +267,5 @@ pub fn flush() -> Result<WaitGroup, LogError> {
261267
}
262268

263269
pub fn print(log: String) -> Result<(), SendError<FastLogRecord>> {
264-
LOGGER.get_or_init(||{ Logger::default() }).print(log)
270+
LOGGER.get_or_init(|| { Logger::default() }).print(log)
265271
}

0 commit comments

Comments
 (0)