mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-06-16 07:36:38 +00:00
Optimize fn log
using Arguments::as_str
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
d79f30e897
commit
f955abd2d5
1 changed files with 14 additions and 8 deletions
|
@ -2,7 +2,7 @@ use std::cell::Cell;
|
||||||
use std::fmt::Write;
|
use std::fmt::Write;
|
||||||
use std::sync::mpsc::SyncSender;
|
use std::sync::mpsc::SyncSender;
|
||||||
|
|
||||||
use bytes::BytesMut;
|
use bytes::{Bytes, BytesMut};
|
||||||
use log::{set_boxed_logger, set_max_level, Level, LevelFilter, Log, Metadata, Record};
|
use log::{set_boxed_logger, set_max_level, Level, LevelFilter, Log, Metadata, Record};
|
||||||
|
|
||||||
use super::ui_thread::UIRequest;
|
use super::ui_thread::UIRequest;
|
||||||
|
@ -56,15 +56,21 @@ impl Log for UIThreadLogger {
|
||||||
.iter()
|
.iter()
|
||||||
.any(|filter| target.starts_with(filter))
|
.any(|filter| target.starts_with(filter))
|
||||||
{
|
{
|
||||||
let output = Self::BUFFER.with(|cell| {
|
let args = record.args();
|
||||||
let mut buffer = cell.take();
|
|
||||||
writeln!(&mut buffer, "{}", record.args()).unwrap();
|
|
||||||
|
|
||||||
let output = buffer.split().freeze();
|
let output = if let Some(s) = args.as_str() {
|
||||||
cell.set(buffer);
|
Bytes::from_static(s.as_bytes())
|
||||||
|
} else {
|
||||||
|
Self::BUFFER.with(|cell| {
|
||||||
|
let mut buffer = cell.take();
|
||||||
|
writeln!(&mut buffer, "{}", args).unwrap();
|
||||||
|
|
||||||
output
|
let output = buffer.split().freeze();
|
||||||
});
|
cell.set(buffer);
|
||||||
|
|
||||||
|
output
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
let request_builder = match metadata.level() {
|
let request_builder = match metadata.level() {
|
||||||
Level::Error | Level::Warn => UIRequest::PrintToStderr,
|
Level::Error | Level::Warn => UIRequest::PrintToStderr,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue