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
/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under both the MIT license found in the * LICENSE-MIT file in the root directory of this source tree and the Apache * License, Version 2.0 found in the LICENSE-APACHE file in the root directory * of this source tree. */ //! # A slog `Drain` for glog-formatted logs. //! //! ## Usage //! //! For simple programs where you need glog-formatted logs to standard error, use the `logger` //! convenience function to create your logger: //! //! ``` //! use slog::info; //! //! fn main() { //! let log = slog_glog_fmt::facebook_logger().unwrap(); //! info!(log, "glog-formatted logs available"); //! } //! ``` //! //! For more complicated scenarios, create a `GlogFormat` instance using a normal slog-term //! decorator, and use that to construct the root `Logger` instance. You can combine the //! `GlogFormat` drain with other drains in the usual way. The `KVCategorizer` controls how the KV //! values should be printed. //! //! ``` //! use std::sync::Mutex; //! use slog::{debug, o, Drain, Logger}; //! use slog_glog_fmt::kv_categorizer::InlineCategorizer; //! //! pub fn main() { //! let decorator = slog_term::TermDecorator::new().build(); //! let drain = slog_glog_fmt::GlogFormat::new(decorator, InlineCategorizer).fuse(); //! let drain = Mutex::new(drain).fuse(); //! let log = Logger::root(drain, o!()); //! debug!(log, "Custom logger built."); //! } //! ``` #![deny(warnings, missing_docs, clippy::all, broken_intra_doc_links)] #![allow(clippy::needless_doctest_main)] pub mod collector_serializer; mod glog_format; pub mod kv_categorizer; pub mod kv_defaults; pub use crate::glog_format::{default_drain, facebook_logger, GlogFormat};