1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
use log::LogRecord; use formats::default_format; /// Allows influencing the behavior of flexi_logger. pub struct LogConfig { /// Allows providing a custom logline format; by default ```flexi_logger::default_format``` is used. /// You can either choose between three predefined variants, /// ```default_format```, ```opt_format``` and ```detailed_format```, /// or you create and use your own format function with the signature ```fn(&LogRecord) -> String```. pub format: fn(&LogRecord) -> String, /// * If `false` (default), the log is written to stderr. /// * If `true`, a new file is created and the log is written to it. /// The default pattern for the filename is '\<program_name\>\_\<date\>\_\<time\>.\<suffix\>', /// e.g. `myprog_2015-07-08_10-44-11.log`. /// /// <p>Note that all following members of LogConfig are only relevant if this one is set to `true`. pub log_to_file: bool, /// If `true` (default), the name of the logfile is documented in a message to stdout. pub print_message: bool, /// If `true` (default), all logged error messages are duplicated to stdout. pub duplicate_error: bool, /// If `true` (default), all logged warning and info messages are also duplicated to stdout. pub duplicate_info: bool, /// Allows specifying a directory in which the log files are created. Default is ```None```. pub directory: Option<String>, /// Allows specifying the filesystem suffix of the log files (without the dot). Default is ```log```. pub suffix: Option<String>, /// Allows specifying a maximum size for log files in bytes; when /// the specified file size is reached or exceeded, the file will be closed and a new one will be opened. /// The filename pattern changes - instead of the timestamp the serial number is included into the filename. pub rotate_over_size: Option<usize>, /// Allows specifying an additional part of the log file name that is inserted after the program name. pub discriminant: Option<String>, } impl LogConfig { /// initializes with /// /// * log_to_file = false, /// * print_message = true, /// * duplicate_error = true, /// * duplicate_info = false, /// * format = flexi_logger::default_format, /// * no directory (log files are created where the program was started), /// * no rotate_over: log file grows indefinitely /// * no discriminant: log file name consists only of progname, date or rotate_idx, and suffix. /// * suffix = "log". pub fn new() -> LogConfig { LogConfig { log_to_file: false, print_message: true, duplicate_error: true, duplicate_info: false, format: default_format, directory: None, rotate_over_size: None, discriminant: None, suffix: Some("log".to_string()), } } }