feat: add logging to client (#18)
Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
parent
3d73b2c27d
commit
1781a241da
|
|
@ -26,5 +26,7 @@ path = "src/bin/dfstore/main.rs"
|
|||
clap = { version = "4.1.13", features = [ "derive" ] }
|
||||
home = "0.5.4"
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = "0.3"
|
||||
tracing-log = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||
tracing-appender = "0.2"
|
||||
humantime = "2.1.0"
|
||||
|
|
|
|||
|
|
@ -122,5 +122,5 @@ struct Args {
|
|||
|
||||
fn main() {
|
||||
let args = Args::parse();
|
||||
print!("{:?}", args.output);
|
||||
println!("{:?}", args.output);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,3 +13,37 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
use tracing::Level;
|
||||
use tracing_appender::non_blocking::WorkerGuard;
|
||||
use tracing_appender::rolling::{RollingFileAppender, Rotation};
|
||||
use tracing_log::LogTracer;
|
||||
use tracing_subscriber::{fmt::Layer, prelude::*, EnvFilter, Registry};
|
||||
|
||||
pub fn init_logging(name: &str, dir: &str, level: Level) -> Vec<WorkerGuard> {
|
||||
let mut guards = vec![];
|
||||
LogTracer::init().expect("failed to init LogTracer");
|
||||
|
||||
// Setup stdout layer.
|
||||
let (stdout_writer, stdout_guard) = tracing_appender::non_blocking(std::io::stdout());
|
||||
let stdout_logging_layer = Layer::new().with_writer(stdout_writer);
|
||||
guards.push(stdout_guard);
|
||||
|
||||
// Setup file layer.
|
||||
let rolling_appender = RollingFileAppender::new(Rotation::DAILY, dir, name);
|
||||
let (rolling_writer, rolling_writer_guard) = tracing_appender::non_blocking(rolling_appender);
|
||||
let file_logging_layer = Layer::new().with_writer(rolling_writer);
|
||||
guards.push(rolling_writer_guard);
|
||||
|
||||
let env_filter =
|
||||
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(level.to_string()));
|
||||
|
||||
let subscriber = Registry::default()
|
||||
.with(env_filter)
|
||||
.with(stdout_logging_layer)
|
||||
.with(file_logging_layer);
|
||||
|
||||
tracing::subscriber::set_global_default(subscriber).expect("failed to set global subscriber");
|
||||
|
||||
guards
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue