full_format/
full-format.rs1#[macro_use]
2extern crate slog;
3extern crate slog_html;
4extern crate slog_stream;
5
6use slog::DrainExt;
7
8use std::fs::OpenOptions;
9
10fn main() {
11 let file = OpenOptions::new()
12 .create(true)
13 .write(true)
14 .truncate(true)
15 .open("target/log.html").unwrap();
16
17 let d1 = slog_stream::stream(
18 file,
19 slog_html::new().full().build()
20 );
21 let d2 = slog_stream::stream(
22 std::io::stderr(),
23 slog_html::new().full().build()
24 );
25
26 let root_log = slog::Logger::root(
27 slog::duplicate(d1, d2).fuse(),
28 o!("version" => env!("CARGO_PKG_VERSION"))
29 );
30
31 let server_log = root_log.new(o!("host" => "localhost", "port" => "8080"));
32 let peer1_log = server_log.new(o!("peer_addr" => "8.8.8.8", "port" => "18230"));
33 let peer2_log = server_log.new(o!("peer_addr" => "82.9.9.9", "port" => "42381"));
34
35 info!(server_log, "starting");
36 info!(server_log, "listening");
37 debug!(peer2_log, "connected");
38 debug!(peer2_log, "message received"; "length" => 2);
39 debug!(peer1_log, "connected");
40 debug!(peer2_log, "response sent"; "length" => 8);
41 debug!(peer2_log, "disconnected");
42 debug!(peer1_log, "message received"; "length" => 2);
43 debug!(peer1_log, "response sent"; "length" => 8);
44 debug!(peer1_log, "disconnected");
45 info!(server_log, "exit");
46}