proxmox-rest-server: cleanup FileLogger docs

This commit is contained in:
Dietmar Maurer 2021-09-30 08:51:23 +02:00
parent aaf4f40285
commit c76ff4b472
1 changed files with 19 additions and 23 deletions

View File

@ -5,29 +5,8 @@ use nix::fcntl::OFlag;
use proxmox::tools::fs::{CreateOptions, atomic_open_or_create_file}; use proxmox::tools::fs::{CreateOptions, atomic_open_or_create_file};
/// Log messages with optional automatically added timestamps into files /// Options to control the behavior of a [FileLogger] instance
///
/// Logs messages to file, and optionally to standard output.
///
///
/// #### Example:
/// ```
/// # use anyhow::{bail, format_err, Error};
/// use proxmox_rest_server::{flog, FileLogger, FileLogOptions};
///
/// # std::fs::remove_file("test.log");
/// let options = FileLogOptions {
/// to_stdout: true,
/// exclusive: true,
/// ..Default::default()
/// };
/// let mut log = FileLogger::new("test.log", options).unwrap();
/// flog!(log, "A simple log: {}", "Hello!");
/// # std::fs::remove_file("test.log");
/// ```
#[derive(Default)] #[derive(Default)]
/// Options to control the behavior of a ['FileLogger'] instance
pub struct FileLogOptions { pub struct FileLogOptions {
/// Open underlying log file in append mode, useful when multiple concurrent processes /// Open underlying log file in append mode, useful when multiple concurrent processes
/// want to log to the same file (e.g., HTTP access log). Note that it is only atomic /// want to log to the same file (e.g., HTTP access log). Note that it is only atomic
@ -47,13 +26,30 @@ pub struct FileLogOptions {
} }
/// Log messages with optional automatically added timestamps into files
///
/// #### Example:
/// ```
/// # use anyhow::{bail, format_err, Error};
/// use proxmox_rest_server::{flog, FileLogger, FileLogOptions};
///
/// # std::fs::remove_file("test.log");
/// let options = FileLogOptions {
/// to_stdout: true,
/// exclusive: true,
/// ..Default::default()
/// };
/// let mut log = FileLogger::new("test.log", options).unwrap();
/// flog!(log, "A simple log: {}", "Hello!");
/// # std::fs::remove_file("test.log");
/// ```
pub struct FileLogger { pub struct FileLogger {
file: std::fs::File, file: std::fs::File,
file_name: std::path::PathBuf, file_name: std::path::PathBuf,
options: FileLogOptions, options: FileLogOptions,
} }
/// Log messages to [`FileLogger`](tools/struct.FileLogger.html) /// Log messages to [FileLogger] - ``println`` like macro
#[macro_export] #[macro_export]
macro_rules! flog { macro_rules! flog {
($log:expr, $($arg:tt)*) => ({ ($log:expr, $($arg:tt)*) => ({