44//! ```
55//! #[macro_use]
66//! extern crate slog;
7- //! extern crate slog_json;
87//!
98//! use slog::Drain;
109//! use std::sync::Mutex;
2221#![ warn( missing_docs) ]
2322#[ macro_use]
2423extern crate slog;
25- extern crate chrono;
26- extern crate serde;
27- extern crate serde_json;
2824
2925use serde:: ser:: SerializeMap ;
3026use serde:: serde_if_integer128;
31- use slog:: { FnValue , PushFnValue } ;
32- use slog:: { OwnedKVList , KV , SendSyncRefUnwindSafeKV } ;
33- use slog:: Record ;
34- use std:: { io, result, fmt} ;
3527use slog:: Key ;
28+ use slog:: Record ;
29+ use slog:: { FnValue , PushFnValue } ;
30+ use slog:: { OwnedKVList , SendSyncRefUnwindSafeKV , KV } ;
31+ use std:: { fmt, io, result} ;
3632
3733use std:: cell:: RefCell ;
3834use std:: fmt:: Write ;
@@ -56,12 +52,13 @@ struct SerdeSerializer<S: serde::Serializer> {
5652impl < S : serde:: Serializer > SerdeSerializer < S > {
5753 /// Start serializing map of values
5854 fn start ( ser : S , len : Option < usize > ) -> result:: Result < Self , slog:: Error > {
59- let ser_map = try!( ser. serialize_map ( len)
60- . map_err ( |e| {
61- io:: Error :: new ( io:: ErrorKind :: Other ,
62- format ! ( "serde serialization error: {}" , e) )
63- } ) ) ;
64- Ok ( SerdeSerializer { ser_map : ser_map } )
55+ let ser_map = ser. serialize_map ( len) . map_err ( |e| {
56+ io:: Error :: new (
57+ io:: ErrorKind :: Other ,
58+ format ! ( "serde serialization error: {}" , e) ,
59+ )
60+ } ) ?;
61+ Ok ( SerdeSerializer { ser_map } )
6562 }
6663
6764 /// Finish serialization, and return the serializer
@@ -73,14 +70,15 @@ impl<S: serde::Serializer> SerdeSerializer<S> {
7370macro_rules! impl_m(
7471 ( $s: expr, $key: expr, $val: expr) => ( {
7572 let k_s: & str = $key. as_ref( ) ;
76- try! ( $s. ser_map. serialize_entry( k_s, $val)
77- . map_err( |e| io:: Error :: new( io:: ErrorKind :: Other , format!( "serde serialization error: {}" , e) ) ) ) ;
73+ $s. ser_map. serialize_entry( k_s, $val)
74+ . map_err( |e| io:: Error :: new( io:: ErrorKind :: Other , format!( "serde serialization error: {}" , e) ) ) ? ;
7875 Ok ( ( ) )
7976 } ) ;
8077) ;
8178
8279impl < S > slog:: Serializer for SerdeSerializer < S >
83- where S : serde:: Serializer
80+ where
81+ S : serde:: Serializer ,
8482{
8583 fn emit_bool ( & mut self , key : Key , val : bool ) -> slog:: Result {
8684 impl_m ! ( self , key, & val)
@@ -145,26 +143,28 @@ impl<S> slog::Serializer for SerdeSerializer<S>
145143 fn emit_str ( & mut self , key : Key , val : & str ) -> slog:: Result {
146144 impl_m ! ( self , key, & val)
147145 }
148- fn emit_arguments ( & mut self ,
149- key : Key ,
150- val : & fmt :: Arguments )
151- -> slog :: Result {
152-
146+ fn emit_arguments (
147+ & mut self ,
148+ key : Key ,
149+ val : & fmt :: Arguments ,
150+ ) -> slog :: Result {
153151 TL_BUF . with ( |buf| {
154152 let mut buf = buf. borrow_mut ( ) ;
155153
156154 buf. write_fmt ( * val) . unwrap ( ) ;
157155
158- let res = {
159- || impl_m ! ( self , key, & * buf)
160- } ( ) ;
156+ let res = { || impl_m ! ( self , key, & * buf) } ( ) ;
161157 buf. clear ( ) ;
162158 res
163159 } )
164160 }
165161
166162 #[ cfg( feature = "nested-values" ) ]
167- fn emit_serde ( & mut self , key : Key , value : & slog:: SerdeValue ) -> slog:: Result {
163+ fn emit_serde (
164+ & mut self ,
165+ key : Key ,
166+ value : & dyn slog:: SerdeValue ,
167+ ) -> slog:: Result {
168168 impl_m ! ( self , key, value. as_serde( ) )
169169 }
170170}
@@ -184,15 +184,16 @@ pub struct Json<W: io::Write> {
184184}
185185
186186impl < W > Json < W >
187- where W : io:: Write
187+ where
188+ W : io:: Write ,
188189{
189190 /// New `Json` `Drain` with default key-value pairs added
190191 pub fn default ( io : W ) -> Json < W > {
191192 JsonBuilder :: new ( io) . add_default_keys ( ) . build ( )
192193 }
193194
194195 /// Build custom `Json` `Drain`
195- #[ cfg_attr( feature = "cargo-clippy" , allow( new_ret_no_self) ) ]
196+ #[ cfg_attr( feature = "cargo-clippy" , allow( clippy :: new_ret_no_self) ) ]
196197 pub fn new ( io : W ) -> JsonBuilder < W > {
197198 JsonBuilder :: new ( io)
198199 }
@@ -206,47 +207,47 @@ impl<W> Json<W>
206207 where
207208 F : serde_json:: ser:: Formatter ,
208209 {
209- let mut serializer =
210- try!( SerdeSerializer :: start ( & mut * serializer, None ) ) ;
210+ let mut serializer = SerdeSerializer :: start ( & mut * serializer, None ) ?;
211211
212212 for kv in & self . values {
213- try! ( kv. serialize ( rinfo, & mut serializer) ) ;
213+ kv. serialize ( rinfo, & mut serializer) ? ;
214214 }
215215
216- try! ( logger_values. serialize ( rinfo, & mut serializer) ) ;
216+ logger_values. serialize ( rinfo, & mut serializer) ? ;
217217
218- try! ( rinfo. kv ( ) . serialize ( rinfo, & mut serializer) ) ;
218+ rinfo. kv ( ) . serialize ( rinfo, & mut serializer) ? ;
219219
220220 let res = serializer. end ( ) ;
221221
222- try! ( res. map_err ( |e| io:: Error :: new ( io:: ErrorKind :: Other , e) ) ) ;
222+ res. map_err ( |e| io:: Error :: new ( io:: ErrorKind :: Other , e) ) ? ;
223223
224224 Ok ( ( ) )
225225 }
226226}
227227
228228impl < W > slog:: Drain for Json < W >
229- where W : io:: Write
229+ where
230+ W : io:: Write ,
230231{
231232 type Ok = ( ) ;
232233 type Err = io:: Error ;
233- fn log ( & self ,
234- rinfo : & Record ,
235- logger_values : & OwnedKVList )
236- -> io :: Result < ( ) > {
237-
234+ fn log (
235+ & self ,
236+ rinfo : & Record ,
237+ logger_values : & OwnedKVList ,
238+ ) -> io :: Result < ( ) > {
238239 let mut io = self . io . borrow_mut ( ) ;
239240 let io = if self . pretty {
240241 let mut serializer = serde_json:: Serializer :: pretty ( & mut * io) ;
241- try! ( self . log_impl ( & mut serializer, & rinfo, & logger_values) ) ;
242+ self . log_impl ( & mut serializer, rinfo, logger_values) ? ;
242243 serializer. into_inner ( )
243244 } else {
244245 let mut serializer = serde_json:: Serializer :: new ( & mut * io) ;
245- try! ( self . log_impl ( & mut serializer, & rinfo, & logger_values) ) ;
246+ self . log_impl ( & mut serializer, rinfo, logger_values) ? ;
246247 serializer. into_inner ( )
247248 } ;
248249 if self . newlines {
249- try! ( io. write_all ( "\n " . as_bytes ( ) ) ) ;
250+ io. write_all ( "\n " . as_bytes ( ) ) ? ;
250251 }
251252 if self . flush {
252253 io. flush ( ) ?;
@@ -270,14 +271,15 @@ pub struct JsonBuilder<W: io::Write> {
270271}
271272
272273impl < W > JsonBuilder < W >
273- where W : io:: Write
274+ where
275+ W : io:: Write ,
274276{
275277 fn new ( io : W ) -> Self {
276278 JsonBuilder {
277279 newlines : true ,
278280 flush : false ,
279281 values : vec ! [ ] ,
280- io : io ,
282+ io,
281283 pretty : false ,
282284 }
283285 }
@@ -315,7 +317,8 @@ impl<W> JsonBuilder<W>
315317
316318 /// Add custom values to be printed with this formatter
317319 pub fn add_key_value < T > ( mut self , value : slog:: OwnedKV < T > ) -> Self
318- where T : SendSyncRefUnwindSafeKV + ' static
320+ where
321+ T : SendSyncRefUnwindSafeKV + ' static ,
319322 {
320323 self . values . push ( value. into ( ) ) ;
321324 self
@@ -328,16 +331,16 @@ impl<W> JsonBuilder<W>
328331 /// * `msg` - msg - formatted logging message
329332 pub fn add_default_keys ( self ) -> Self {
330333 self . add_key_value ( o ! (
331- "ts" => PushFnValue ( move |_ : & Record , ser| {
332- ser. emit( chrono:: Local :: now( ) . to_rfc3339( ) )
333- } ) ,
334- "level" => FnValue ( move |rinfo : & Record | {
335- rinfo. level( ) . as_short_str( )
336- } ) ,
337- "msg" => PushFnValue ( move |record : & Record , ser| {
338- ser. emit( record. msg( ) )
339- } ) ,
340- ) )
334+ "ts" => PushFnValue ( move |_ : & Record , ser| {
335+ ser. emit( chrono:: Local :: now( ) . to_rfc3339( ) )
336+ } ) ,
337+ "level" => FnValue ( move |rinfo : & Record | {
338+ rinfo. level( ) . as_short_str( )
339+ } ) ,
340+ "msg" => PushFnValue ( move |record : & Record , ser| {
341+ ser. emit( record. msg( ) )
342+ } ) ,
343+ ) )
341344 }
342345}
343346// }}}
0 commit comments