-
I'm trying to merge a RotatingFileSink and a StdStreamSink in a AsyncPoolSink, but for some reason it creates the file but won't write to it at all. It doesn't arise any errors on runtime/compile, so I think the issue might be on my logic while writing this. Any help would be greatly appreciated! use crate::SETTINGS;
use spdlog::{
formatter::{pattern, PatternFormatter},
info,
sink::{AsyncPoolSink, RotatingFileSink, RotationPolicy, Sink, StdStream, StdStreamSink},
Level, LevelFilter, Logger, LoggerBuilder,
};
use std::sync::Arc;
use std::str::FromStr;
pub async fn new() -> Result<(), spdlog::Error> {
let rotation_policy = RotationPolicy::Daily { hour: 0, minute: 0 }; // rotate every day at midnight
let file_sink: Arc<RotatingFileSink> = Arc::new(
RotatingFileSink::builder()
.base_path("log.txt")
.rotation_policy(rotation_policy)
.rotate_on_open(true)
.build()?,
);
let std_sink = Arc::new(
StdStreamSink::builder()
.std_stream(StdStream::Stdout)
.build()?,
);
let sinks: [Arc<dyn Sink>; 2] = [file_sink, std_sink];
let async_pool_sink: Arc<AsyncPoolSink> =
Arc::new(AsyncPoolSink::builder().sinks(sinks).build()?);
let mut builder: LoggerBuilder = Logger::builder();
let logger: Arc<Logger> = Arc::new(builder.sink(async_pool_sink).build()?);
// formatting the output of logs to have a clear and nice reading
info!("before formatting");
let formatter: Box<PatternFormatter<_>> = Box::new(PatternFormatter::new(pattern!(
"{date} {hour}:{minute}:{second}:{millisecond} - {^{level_short}} - {payload}{eol}"
)));
for sink in logger.sinks() {
sink.set_formatter(formatter.clone())
}
logger.set_level_filter(LevelFilter::MoreSevereEqual(Level::from_str(
&SETTINGS.read().await.logging.level,
)?));
spdlog::set_default_logger(logger.clone());
info!(logger: logger, "Logging initialized");
Ok(())
} |
Beta Was this translation helpful? Give feedback.
Answered by
Bestfast
Mar 15, 2024
Replies: 1 comment
-
duplicate of #63 :S |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
Bestfast
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
duplicate of #63 :S
Sorry, didn't see that there were other discussions opened.