Skip to content

Commit 54991ed

Browse files
committed
Update example.
1 parent df3cbb2 commit 54991ed

File tree

5 files changed

+75
-62
lines changed

5 files changed

+75
-62
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "structured-logger"
3-
version = "1.0.1"
3+
version = "1.0.2"
44
edition = "2018"
55
description = """
66
A logging implementation for the log crate that logs structured values either synchronous or asynchronous, as JSON, CBOR, or any other format, into a file, stderr, stdout, or any other destination.

README.md

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,15 @@ See examples and the [API documentation] for more.
1717

1818
## Example
1919

20-
* Log panics example: https://github.com/iorust/structured-logger/blob/main/examples/panic_log.rs
21-
* Async log example: https://github.com/iorust/structured-logger/blob/main/examples/async_log.rs
22-
23-
Muilti writers example:
20+
Simple example:
2421
```rust
2522
use serde::Serialize;
26-
use std::{fs::File, io::stdout};
2723
use structured_logger::{json::new_writer, unix_ms, Builder};
2824

2925
fn main() {
3026
// Initialize the logger.
31-
// Optional: create a file to write logs to.
32-
let log_file = File::options()
33-
.create(true)
34-
.append(true)
35-
.open("app.log")
36-
.unwrap();
37-
38-
// or Builder::with_level("debug")
39-
Builder::new()
40-
// Optional: set a specific writer (format to JSON, write to stdout) for target starts with "api"..
41-
.with_target_writer("api*", new_writer(stdout()))
42-
// Optional: set a specific writer (format to JSON, write to app.log file) for target "file" and "db".
43-
.with_target_writer("file,db", new_writer(log_file))
27+
Builder::with_level("info")
28+
.with_target_writer("*", new_writer(std::io::stdout()))
4429
.init();
4530

4631
let kv = ContextLog {
@@ -49,7 +34,7 @@ fn main() {
4934
};
5035

5136
log::info!("hello world");
52-
// This log will be written to stderr (default writer):
37+
// This log will be written to stdout:
5338
// {"level":"INFO","message":"hello world","target":"simple","timestamp":1679745592127}
5439

5540
log::info!(target: "api",
@@ -63,18 +48,6 @@ fn main() {
6348
);
6449
// This log will be written to stdout:
6550
// {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"api","timestamp":1679745592127}
66-
67-
log::info!(target: "file",
68-
method = "GET",
69-
path = "/hello",
70-
status = 200_u16,
71-
start = unix_ms(),
72-
elapsed = 10_u64,
73-
kv = log::as_serde!(kv);
74-
"",
75-
);
76-
// This log will be written to file "app.log":
77-
// {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"file","timestamp":1679745592127}
7851
}
7952

8053
#[derive(Serialize)]
@@ -84,6 +57,10 @@ struct ContextLog {
8457
}
8558
```
8659

60+
* Log panics example: https://github.com/iorust/structured-logger/blob/main/examples/panic_log.rs
61+
* Async log example: https://github.com/iorust/structured-logger/blob/main/examples/async_log.rs
62+
* Custom writers example: https://github.com/iorust/structured-logger/blob/main/examples/custom.rs
63+
8764
[API documentation]: https://docs.rs/structured-logger
8865

8966
## License

examples/custom.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
use serde::Serialize;
2+
use std::{fs::File, io::stdout};
3+
use structured_logger::{json::new_writer, unix_ms, Builder};
4+
5+
fn main() {
6+
// Initialize the logger.
7+
// Optional: create a file to write logs to.
8+
let log_file = File::options()
9+
.create(true)
10+
.append(true)
11+
.open("app.log")
12+
.unwrap();
13+
14+
// or Builder::with_level("debug")
15+
Builder::new()
16+
// Optional: set a specific writer (format to JSON, write to stdout) for target starts with "api"..
17+
.with_target_writer("api*", new_writer(stdout()))
18+
// Optional: set a specific writer (format to JSON, write to app.log file) for target "file" and "db".
19+
.with_target_writer("file,db", new_writer(log_file))
20+
.init();
21+
22+
let kv = ContextLog {
23+
uid: "user123".to_string(),
24+
action: "upate_book".to_string(),
25+
};
26+
27+
log::info!("hello world");
28+
// This log will be written to stderr (default writer):
29+
// {"level":"INFO","message":"hello world","target":"simple","timestamp":1679745592127}
30+
31+
log::info!(target: "api",
32+
method = "GET",
33+
path = "/hello",
34+
status = 200_u16,
35+
start = unix_ms(),
36+
elapsed = 10_u64,
37+
kv = log::as_serde!(kv);
38+
"",
39+
);
40+
// This log will be written to stdout:
41+
// {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"api","timestamp":1679745592127}
42+
43+
log::info!(target: "file",
44+
method = "GET",
45+
path = "/hello",
46+
status = 200_u16,
47+
start = unix_ms(),
48+
elapsed = 10_u64,
49+
kv = log::as_serde!(kv);
50+
"",
51+
);
52+
// This log will be written to file "app.log":
53+
// {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"file","timestamp":1679745592127}
54+
}
55+
56+
#[derive(Serialize)]
57+
struct ContextLog {
58+
uid: String,
59+
action: String,
60+
}

examples/panic_log.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
fn main() {
2-
use log::info;
3-
use structured_logger::Builder;
1+
use log::info;
2+
use structured_logger::Builder;
43

4+
fn main() {
55
// Initialize the logger.
66
Builder::new().init();
77

examples/simple.rs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,10 @@
11
use serde::Serialize;
2-
use std::{fs::File, io::stdout};
32
use structured_logger::{json::new_writer, unix_ms, Builder};
43

54
fn main() {
65
// Initialize the logger.
7-
// Optional: create a file to write logs to.
8-
let log_file = File::options()
9-
.create(true)
10-
.append(true)
11-
.open("app.log")
12-
.unwrap();
13-
14-
// or Builder::with_level("debug")
15-
Builder::new()
16-
// Optional: set a specific writer (format to JSON, write to stdout) for target starts with "api"..
17-
.with_target_writer("api*", new_writer(stdout()))
18-
// Optional: set a specific writer (format to JSON, write to app.log file) for target "file" and "db".
19-
.with_target_writer("file,db", new_writer(log_file))
6+
Builder::with_level("info")
7+
.with_target_writer("*", new_writer(std::io::stdout()))
208
.init();
219

2210
let kv = ContextLog {
@@ -25,7 +13,7 @@ fn main() {
2513
};
2614

2715
log::info!("hello world");
28-
// This log will be written to stderr (default writer):
16+
// This log will be written to stdout:
2917
// {"level":"INFO","message":"hello world","target":"simple","timestamp":1679745592127}
3018

3119
log::info!(target: "api",
@@ -39,18 +27,6 @@ fn main() {
3927
);
4028
// This log will be written to stdout:
4129
// {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"api","timestamp":1679745592127}
42-
43-
log::info!(target: "file",
44-
method = "GET",
45-
path = "/hello",
46-
status = 200_u16,
47-
start = unix_ms(),
48-
elapsed = 10_u64,
49-
kv = log::as_serde!(kv);
50-
"",
51-
);
52-
// This log will be written to file "app.log":
53-
// {"elapsed":10,"kv":{"uid":"user123","action":"upate_book"},"level":"INFO","message":"","method":"GET","path":"/hello","start":1679745592127,"status":200,"target":"file","timestamp":1679745592127}
5430
}
5531

5632
#[derive(Serialize)]

0 commit comments

Comments
 (0)