25
25
//! ```
26
26
#![ warn( missing_docs) ]
27
27
28
+ extern crate nix;
28
29
extern crate slog;
29
30
extern crate syslog;
30
- extern crate nix;
31
31
32
- use slog:: { Drain , Level , Record , OwnedKVList } ;
33
- use std:: { io , fmt } ;
32
+ use slog:: { Drain , Level , OwnedKVList , Record } ;
33
+ use std:: { fmt , io } ;
34
34
use std:: sync:: Mutex ;
35
35
use std:: cell:: RefCell ;
36
- use std:: path:: { PathBuf , Path } ;
36
+ use std:: path:: { Path , PathBuf } ;
37
37
use std:: net:: SocketAddr ;
38
- use std:: io:: { Error , ErrorKind } ;
38
+ use std:: io:: { Error , ErrorKind } ;
39
39
40
40
use slog:: KV ;
41
41
@@ -54,7 +54,6 @@ fn level_to_severity(level: slog::Level) -> syslog::Severity {
54
54
Level :: Debug => syslog:: Severity :: LOG_INFO ,
55
55
Level :: Trace => syslog:: Severity :: LOG_DEBUG ,
56
56
}
57
-
58
57
}
59
58
60
59
/// Drain formatting records and writing them to a syslog ``Logger`
@@ -81,17 +80,18 @@ impl Drain for Streamer3164 {
81
80
type Ok = ( ) ;
82
81
83
82
fn log ( & self , info : & Record , logger_values : & OwnedKVList ) -> io:: Result < ( ) > {
84
-
85
83
TL_BUF . with ( |buf| {
86
84
let mut buf = buf. borrow_mut ( ) ;
87
85
let res = {
88
86
|| {
89
87
try!( self . format . format ( & mut * buf, info, logger_values) ) ;
90
88
let sever = level_to_severity ( info. level ( ) ) ;
91
89
{
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
+ ) ;
95
95
96
96
let buf = String :: from_utf8_lossy ( & buf) ;
97
97
let buf = io. format_3164 ( sever, & buf) . into_bytes ( ) ;
@@ -100,7 +100,7 @@ impl Drain for Streamer3164 {
100
100
while pos < buf. len ( ) {
101
101
let n = try!( io. send_raw ( & buf[ pos..] ) ) ;
102
102
if n == 0 {
103
- break
103
+ break ;
104
104
}
105
105
106
106
pos += n;
@@ -125,11 +125,12 @@ impl Format3164 {
125
125
Format3164
126
126
}
127
127
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 < ( ) > {
133
134
try!( write ! ( io, "{}" , record. msg( ) ) ) ;
134
135
135
136
let mut ser = KSV :: new ( io) ;
@@ -148,9 +149,7 @@ struct KSV<W: io::Write> {
148
149
149
150
impl < W : io:: Write > KSV < W > {
150
151
fn new ( io : W ) -> Self {
151
- KSV {
152
- io : io,
153
- }
152
+ KSV { io : io }
154
153
}
155
154
}
156
155
@@ -162,9 +161,18 @@ impl<W: io::Write> slog::Serializer for KSV<W> {
162
161
}
163
162
164
163
enum 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
+ } ,
168
176
}
169
177
170
178
/// Builder pattern for constructing a syslog
@@ -183,7 +191,6 @@ impl Default for SyslogBuilder {
183
191
}
184
192
}
185
193
impl SyslogBuilder {
186
-
187
194
/// Build a default logger
188
195
///
189
196
/// By default this will attempt to connect to (in order)
@@ -209,23 +216,27 @@ impl SyslogBuilder {
209
216
pub fn udp < S : AsRef < str > > ( self , local : SocketAddr , host : SocketAddr , hostname : S ) -> Self {
210
217
let mut s = self ;
211
218
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
+ } ) ;
213
224
s
214
225
}
215
226
216
227
/// Remote TCP syslogging
217
228
pub fn tcp < S : AsRef < str > > ( self , server : SocketAddr , hostname : S ) -> Self {
218
229
let mut s = self ;
219
230
let hostname = hostname. as_ref ( ) . to_string ( ) ;
220
- s. logkind = Some ( SyslogKind :: Tcp { server, hostname } ) ;
231
+ s. logkind = Some ( SyslogKind :: Tcp { server, hostname } ) ;
221
232
s
222
233
}
223
234
224
- /// Local syslogging over a unix socket
235
+ /// Local syslogging over a unix socket
225
236
pub fn unix < P : AsRef < Path > > ( self , path : P ) -> Self {
226
237
let mut s = self ;
227
238
let path = path. as_ref ( ) . to_path_buf ( ) ;
228
- s. logkind = Some ( SyslogKind :: Unix { path } ) ;
239
+ s. logkind = Some ( SyslogKind :: Unix { path } ) ;
229
240
s
230
241
}
231
242
@@ -234,25 +245,29 @@ impl SyslogBuilder {
234
245
let facility = match self . facility {
235
246
Option :: Some ( x) => x,
236
247
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
+ ) ) ;
238
252
}
239
253
} ;
240
254
let logkind = match self . logkind {
241
255
Option :: Some ( l) => l,
242
256
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
+ ) ) ;
244
261
}
245
262
} ;
246
263
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) ?,
256
271
} ;
257
272
Ok ( Streamer3164 :: new ( log) )
258
273
}
0 commit comments