2525//! ```
2626#![ warn( missing_docs) ]
2727
28+ extern crate nix;
2829extern crate slog;
2930extern crate syslog;
30- extern crate nix;
3131
32- use slog:: { Drain , Level , Record , OwnedKVList } ;
33- use std:: { io , fmt } ;
32+ use slog:: { Drain , Level , OwnedKVList , Record } ;
33+ use std:: { fmt , io } ;
3434use std:: sync:: Mutex ;
3535use std:: cell:: RefCell ;
36- use std:: path:: { PathBuf , Path } ;
36+ use std:: path:: { Path , PathBuf } ;
3737use std:: net:: SocketAddr ;
38- use std:: io:: { Error , ErrorKind } ;
38+ use std:: io:: { Error , ErrorKind } ;
3939
4040use slog:: KV ;
4141
@@ -54,7 +54,6 @@ fn level_to_severity(level: slog::Level) -> syslog::Severity {
5454 Level :: Debug => syslog:: Severity :: LOG_INFO ,
5555 Level :: Trace => syslog:: Severity :: LOG_DEBUG ,
5656 }
57-
5857}
5958
6059/// Drain formatting records and writing them to a syslog ``Logger`
@@ -81,17 +80,18 @@ impl Drain for Streamer3164 {
8180 type Ok = ( ) ;
8281
8382 fn log ( & self , info : & Record , logger_values : & OwnedKVList ) -> io:: Result < ( ) > {
84-
8583 TL_BUF . with ( |buf| {
8684 let mut buf = buf. borrow_mut ( ) ;
8785 let res = {
8886 || {
8987 try!( self . format . format ( & mut * buf, info, logger_values) ) ;
9088 let sever = level_to_severity ( info. level ( ) ) ;
9189 {
92- let io = try!( self . io
93- . lock ( )
94- . map_err ( |_| Error :: new ( ErrorKind :: Other , "locking error" ) ) ) ;
90+ let io = try!(
91+ self . io
92+ . lock ( )
93+ . map_err ( |_| Error :: new ( ErrorKind :: Other , "locking error" ) )
94+ ) ;
9595
9696 let buf = String :: from_utf8_lossy ( & buf) ;
9797 let buf = io. format_3164 ( sever, & buf) . into_bytes ( ) ;
@@ -100,7 +100,7 @@ impl Drain for Streamer3164 {
100100 while pos < buf. len ( ) {
101101 let n = try!( io. send_raw ( & buf[ pos..] ) ) ;
102102 if n == 0 {
103- break
103+ break ;
104104 }
105105
106106 pos += n;
@@ -125,11 +125,12 @@ impl Format3164 {
125125 Format3164
126126 }
127127
128- fn format ( & self ,
129- io : & mut io:: Write ,
130- record : & Record ,
131- logger_kv : & OwnedKVList )
132- -> io:: Result < ( ) > {
128+ fn format (
129+ & self ,
130+ io : & mut io:: Write ,
131+ record : & Record ,
132+ logger_kv : & OwnedKVList ,
133+ ) -> io:: Result < ( ) > {
133134 try!( write ! ( io, "{}" , record. msg( ) ) ) ;
134135
135136 let mut ser = KSV :: new ( io) ;
@@ -148,9 +149,7 @@ struct KSV<W: io::Write> {
148149
149150impl < W : io:: Write > KSV < W > {
150151 fn new ( io : W ) -> Self {
151- KSV {
152- io : io,
153- }
152+ KSV { io : io }
154153 }
155154}
156155
@@ -162,9 +161,18 @@ impl<W: io::Write> slog::Serializer for KSV<W> {
162161}
163162
164163enum SyslogKind {
165- Unix { path : PathBuf } ,
166- Tcp { server : SocketAddr , hostname : String } ,
167- Udp { local : SocketAddr , host : SocketAddr , hostname : String } ,
164+ Unix {
165+ path : PathBuf ,
166+ } ,
167+ Tcp {
168+ server : SocketAddr ,
169+ hostname : String ,
170+ } ,
171+ Udp {
172+ local : SocketAddr ,
173+ host : SocketAddr ,
174+ hostname : String ,
175+ } ,
168176}
169177
170178/// Builder pattern for constructing a syslog
@@ -183,7 +191,6 @@ impl Default for SyslogBuilder {
183191 }
184192}
185193impl SyslogBuilder {
186-
187194 /// Build a default logger
188195 ///
189196 /// By default this will attempt to connect to (in order)
@@ -209,23 +216,27 @@ impl SyslogBuilder {
209216 pub fn udp < S : AsRef < str > > ( self , local : SocketAddr , host : SocketAddr , hostname : S ) -> Self {
210217 let mut s = self ;
211218 let hostname = hostname. as_ref ( ) . to_string ( ) ;
212- s. logkind = Some ( SyslogKind :: Udp { local, host, hostname } ) ;
219+ s. logkind = Some ( SyslogKind :: Udp {
220+ local,
221+ host,
222+ hostname,
223+ } ) ;
213224 s
214225 }
215226
216227 /// Remote TCP syslogging
217228 pub fn tcp < S : AsRef < str > > ( self , server : SocketAddr , hostname : S ) -> Self {
218229 let mut s = self ;
219230 let hostname = hostname. as_ref ( ) . to_string ( ) ;
220- s. logkind = Some ( SyslogKind :: Tcp { server, hostname } ) ;
231+ s. logkind = Some ( SyslogKind :: Tcp { server, hostname } ) ;
221232 s
222233 }
223234
224- /// Local syslogging over a unix socket
235+ /// Local syslogging over a unix socket
225236 pub fn unix < P : AsRef < Path > > ( self , path : P ) -> Self {
226237 let mut s = self ;
227238 let path = path. as_ref ( ) . to_path_buf ( ) ;
228- s. logkind = Some ( SyslogKind :: Unix { path } ) ;
239+ s. logkind = Some ( SyslogKind :: Unix { path } ) ;
229240 s
230241 }
231242
@@ -234,25 +245,29 @@ impl SyslogBuilder {
234245 let facility = match self . facility {
235246 Option :: Some ( x) => x,
236247 Option :: None => {
237- return Err ( Error :: new ( ErrorKind :: Other , "facility must be provided to the builder" ) ) ;
248+ return Err ( Error :: new (
249+ ErrorKind :: Other ,
250+ "facility must be provided to the builder" ,
251+ ) ) ;
238252 }
239253 } ;
240254 let logkind = match self . logkind {
241255 Option :: Some ( l) => l,
242256 Option :: None => {
243- return Err ( Error :: new ( ErrorKind :: Other , "no logger kind provided, library does not know what do initialize" ) ) ;
257+ return Err ( Error :: new (
258+ ErrorKind :: Other ,
259+ "no logger kind provided, library does not know what do initialize" ,
260+ ) ) ;
244261 }
245262 } ;
246263 let log = match logkind {
247- SyslogKind :: Unix { path } => {
248- syslog:: unix_custom ( facility, path) ?
249- } ,
250- SyslogKind :: Udp { local, host, hostname } => {
251- syslog:: udp ( local, host, hostname, facility) ?
252- } ,
253- SyslogKind :: Tcp { server, hostname} => {
254- syslog:: tcp ( server, hostname, facility) ?
255- } ,
264+ SyslogKind :: Unix { path } => syslog:: unix_custom ( facility, path) ?,
265+ SyslogKind :: Udp {
266+ local,
267+ host,
268+ hostname,
269+ } => syslog:: udp ( local, host, hostname, facility) ?,
270+ SyslogKind :: Tcp { server, hostname } => syslog:: tcp ( server, hostname, facility) ?,
256271 } ;
257272 Ok ( Streamer3164 :: new ( log) )
258273 }
0 commit comments