pub struct FileSink { /* private fields */ }Expand description
A sink with a file as the target.
It writes logs to a single file. If you want to automatically rotate into
multiple files, see RotatingFileSink.
The file and directories will be created recursively if they do not exist.
§Examples
See ./examples directory.
Implementations§
Source§impl FileSink
impl FileSink
Sourcepub fn builder() -> FileSinkBuilder<()>
pub fn builder() -> FileSinkBuilder<()>
Gets a builder of FileSink with default parameters:
| Parameter | Default Value |
|---|---|
| level_filter | LevelFilter::All |
| formatter | FullFormatter |
| error_handler | ErrorHandler::default() |
| path | must be specified |
| truncate | false |
| capacity | consistent with std |
Examples found in repository?
More examples
examples/07-async.rs (line 10)
8fn main() -> Result<(), Box<dyn std::error::Error>> {
9 let path = env::current_exe()?.with_file_name("async.log");
10 let file_sink = FileSink::builder().path(path).build_arc()?;
11
12 // AsyncPoolSink is a combined sink which wraps other sinks
13 let async_pool_sink = AsyncPoolSink::builder().sink(file_sink).build_arc()?;
14
15 let async_logger = Logger::builder()
16 .sink(async_pool_sink)
17 .flush_level_filter(LevelFilter::All)
18 .build_arc()?;
19
20 info!(logger: async_logger, "Hello, async!");
21
22 Ok(())
23}examples/03-logger.rs (line 16)
8fn main() -> Result<(), Box<dyn std::error::Error>> {
9 // `spdlog-rs` has a global default logger and logs will be processed by it
10 // by default, You can configure it.
11 let default_logger = spdlog::default_logger();
12 default_logger.set_level_filter(LevelFilter::All);
13
14 // Or completely replace it with a new one.
15 let path = env::current_exe()?.with_file_name("all.log");
16 let file_sink = FileSink::builder().path(path).build_arc()?;
17
18 let new_logger = Logger::builder()
19 .level_filter(LevelFilter::All)
20 .flush_level_filter(LevelFilter::MoreSevereEqual(Level::Warn))
21 .sink(file_sink.clone())
22 .build_arc()?;
23 new_logger.set_flush_period(Some(Duration::from_secs(3)));
24 spdlog::set_default_logger(new_logger);
25
26 info!("this log will be written to the file `all.log`");
27
28 // In addition to having the global default logger, more loggers are allowed to
29 // be configured, stored and used independently.
30 let db = AppDatabase::new(file_sink)?;
31 db.write_i32(114514);
32
33 Ok(())
34}
35
36struct AppDatabase {
37 logger: Logger,
38}
39
40impl AppDatabase {
41 fn new(all_log_sink: Arc<dyn Sink>) -> Result<Self, Box<dyn std::error::Error>> {
42 let path = env::current_exe()?.with_file_name("db.log");
43 let db_file_sink = FileSink::builder().path(path).build_arc()?;
44
45 let logger = Logger::builder()
46 .name("database")
47 .level_filter(LevelFilter::All)
48 .flush_level_filter(LevelFilter::MoreSevereEqual(Level::Warn))
49 .sinks([all_log_sink, db_file_sink])
50 .build()?;
51 Ok(Self { logger })
52 }Sourcepub fn new<P>(path: P, truncate: bool) -> Result<FileSink>
👎Deprecated since 0.3.0: it may be removed in the future, use FileSink::builder() instead
pub fn new<P>(path: P, truncate: bool) -> Result<FileSink>
FileSink::builder() insteadConstructs a FileSink.
If the parameter truncate is true, the existing contents of the file
will be discarded.
§Error
If an error occurs opening the file, Error::CreateDirectory or
Error::OpenFile will be returned.
Trait Implementations§
Source§impl GetSinkProp for FileSink
impl GetSinkProp for FileSink
Auto Trait Implementations§
impl !Freeze for FileSink
impl !RefUnwindSafe for FileSink
impl Send for FileSink
impl Sync for FileSink
impl Unpin for FileSink
impl !UnwindSafe for FileSink
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<S> SinkPropAccess for Swhere
S: GetSinkProp,
impl<S> SinkPropAccess for Swhere
S: GetSinkProp,
Source§fn level_filter(&self) -> LevelFilter
fn level_filter(&self) -> LevelFilter
Gets the log level filter.
Source§fn set_level_filter(&self, level_filter: LevelFilter)
fn set_level_filter(&self, level_filter: LevelFilter)
Sets the log level filter.
Source§fn set_formatter(&self, formatter: Box<dyn Formatter>)
fn set_formatter(&self, formatter: Box<dyn Formatter>)
Sets the formatter.
Source§fn set_error_handler(&self, handler: ErrorHandler)
fn set_error_handler(&self, handler: ErrorHandler)
Sets a error handler. Read more