Struct session_log::Logger
source · pub struct Logger(/* private fields */);Implementations§
source§impl Logger
impl Logger
sourcepub fn with_options(
name: impl Into<String>,
level: Level,
directory: impl Into<String>
) -> Result<Logger, ErrorKind>
pub fn with_options( name: impl Into<String>, level: Level, directory: impl Into<String> ) -> Result<Logger, ErrorKind>
Create a new logging entry with the given name & options.
OR
Retrieve an existing logging entry if the entry already exists and have same options.
§Parameters
name- The name of the logging entry.level- The level of the logging entry.directory- The directory where the log files will be stored. (Relative to the current working directory)
§Errors
ErrorKind::DifferentLevelif the existing logger has different level than the given options.ErrorKind::DifferentDirectoryif the existing logger has different directory than the given options.ErrorKind::FailedToCreateFolderif the directory cannot be created.
§Examples
use session_log::{Logger, Level};
fn main() {
let logger = Logger::with_options(
"main", Level::Debug, "logs/main");
let logger2 = Logger::with_options(
"main", Level::Debug, "logs/main"); // Retrieve the existing logger
let logger3 = Logger::with_options(
"main", Level::Info , "logs/main"); // Error: Different level
let logger4 = Logger::with_options(
"main", Level::Debug, "logs/other"); // Error: Different directory
}sourcepub fn try_with_option(
name: impl Into<String>,
level: Level,
directory: impl Into<String>
) -> Logger
pub fn try_with_option( name: impl Into<String>, level: Level, directory: impl Into<String> ) -> Logger
Create a new logging entry with the given name & options.
OR
Retrieve an existing logging entry if the entry already exists.
Unlike Logger::with_options, this method doesn’t return an error if the existing logger has different options.
Instead, it will just ignore the given options and return the existing logger.
§Parameters
name- The name of the logging entry.level- The level of the logging entry.directory- The directory where the log files will be stored. (Relative to the current working directory)
§Examples
use session_log::{Logger, Level};
fn main() {
let logger = Logger::try_with_option(
"main", Level::Debug, "logs/main");
let logger2 = Logger::try_with_option(
"main", Level::Debug, "logs/main"); // Retrieve the existing logger
let logger3 = Logger::try_with_option(
"main", Level::Info , "logs/main"); // Retrieve the existing logger
let logger4 = Logger::try_with_option(
"main", Level::Debug, "logs/other"); // Retrieve the existing logger
}sourcepub fn new(name: impl Into<String>) -> Logger
pub fn new(name: impl Into<String>) -> Logger
Create a new logging entry with the given name. Level and directory is
defaulted to Info and “logs”
OR
Retrieve an existing logging entry if the entry already exists.
Unlike Logger::with_options, this method doesn’t return an error if the existing logger has different options.
Instead, it will just ignore the given options and return the existing logger.
§Parameters
name- The name of the logging entry.
§Examples
use session_log::Logger;
fn main() {
let logger = Logger::new("main");
let logger2 = Logger::new("main"); // Retrieve the existing logger
}sourcepub fn get_level(&self) -> Level
pub fn get_level(&self) -> Level
Get logging level for this entry.
§Examples
use session_log::{Logger, Level};
fn main() {
let logger = Logger::new("main");
assert_eq!(logger.get_level(), Level::Info);
}sourcepub fn set_level(&mut self, level: Level)
pub fn set_level(&mut self, level: Level)
Set logging level for this entry
§Examples
use session_log::{Logger, Level};
fn main() {
let mut logger = Logger::new("main");
logger.set_level(Level::Debug);
assert_eq!(logger.get_level(), Level::Debug);
logger.set_level(Level::Info);
assert_eq!(logger.get_level(), Level::Info);
}sourcepub fn get_directory(&self) -> String
pub fn get_directory(&self) -> String
Get logging directory for this entry.
§Examples
use session_log::Logger;
fn main() {
let logger = Logger::new("main");
assert_eq!(logger.get_directory(), "logs");
}sourcepub fn set_directory(&mut self, directory: impl Into<String>) -> Result<()>
pub fn set_directory(&mut self, directory: impl Into<String>) -> Result<()>
Set logging directory for this entry and create the directory if it doesn’t exist. the result of creating the directory is returned.
§Examples
use session_log::Logger;
fn main() {
let mut logger = Logger::new("main");
logger.set_directory("logs/main");
assert_eq!(logger.get_directory(), "logs/main");
logger.set_directory("logs/other");
assert_eq!(logger.get_directory(), "logs/other");
}