3 个版本
0.1.2 | 2024年7月31日 |
---|---|
0.1.1 | 2024年7月30日 |
0.1.0 | 2024年7月29日 |
#24 in #printing
379 每月下载次数
42KB
213 行
打印和记录
一个简单的crate,用于您的CLI应用程序,允许您将格式化的消息打印到控制台并/或将它们写入日志文件。
有时std::io或println!宏的工具不足以提供即时可识别的输出。有时,即使显示消息也不够,您希望将它们写入某个地方。
在开始时初始化您的实例。
use print_and_log::*;
let mut pal = PrintAndLog::new();
如果您不想更改设置,它不必是可变的。如果您确实要这样做,可以通过调用一些包装函数来实现。默认情况下启用日志记录。如果您想覆盖实现print_and_log函数后的行为,可以将其关闭。格式化选项可以在此找到:这里。
pal.set_log_to_file(true);
let _we_are_writing_logs: bool = pal.get_log_to_file();
let _ = pal.set_log_file_name("mycool.log");
let _name_of_the_log_file: String = pal.get_log_file_name();
let _ = pal.set_max_file_size(4000000);
let _maximal_log_file_size: u32 = pal.get_max_file_size();
let _ = pal.set_timestamp_format_for_print("%d %m");
let _timestamp_format: String = pal.get_timestamp_format_for_print();
使用方法非常直接。函数接受 &str 和 String。第一个参数是消息的标题,该标题将以粗体和彩色显示,然后是较长的消息本身,然后是你希望它成为哪种类型的消息
pal.print("Success!", "This is a success message.", &PALMessageType::Success);
pal.print("Info", "This is an info message.", &PALMessageType::Info);
pal.print("Warn", "This is a warning message.", &PALMessageType::Warn);
pal.print("Trace", "This is a trace message.", &PALMessageType::Trace);
pal.print("Debug", "This is a debug message.", &PALMessageType::Debug);
pal.print("Error!", "This is an error message.", &PALMessageType::Error);
pal.print("", "This message has no title.", &PALMessageType::Info);
使用 String
pal.print(String::from("Success!"), String::from("This is a success string message."), &PALMessageType::Success);
同时使用两者
pal.print("&str", String::from("String"),&PALMessageType::Info);
如果您愿意,可以使用相同的原则记录消息
pal.log("Test", "It's a message!", &PALMessageType::Info);
或者为什么不两者都展示呢?展示给您的用户,并为他们保存以供以后欣赏
pal.print_and_log("You can see me","On your screen and in your files, if the logging is turned on.",&PALMessageType::Info);
致谢
依赖项
~1–11MB
~60K SLoC