https://github.com/robertwhurst/quil
A simple logger for Rust projects
https://github.com/robertwhurst/quil
Last synced: over 1 year ago
JSON representation
A simple logger for Rust projects
- Host: GitHub
- URL: https://github.com/robertwhurst/quil
- Owner: RobertWHurst
- Created: 2017-09-29T19:23:47.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-11-23T06:32:08.000Z (over 8 years ago)
- Last Synced: 2025-03-01T18:38:47.330Z (over 1 year ago)
- Language: Rust
- Homepage: http://docs.rs/quil
- Size: 27.3 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
Quil is a easy to use library that supports message levels, multiple
output targets, sub-loggers, and message contexts. Quil can be used across
threads safely, and is easy to extend.
# Examples
Basic example:
```rust
let logger = Logger::new(Console::new(), context!{ src: "root" });
logger.info("hello world");
```
```shell
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello world src=root
```
Sub-context example:
```rust
let logger = Logger::new(Console::new(), context!{ src: "root", tag: "1" });
logger.info("hello");
let sub_logger = logger.ctx(context!{ tag: "", marker: "49" });
logger.info("world");
```
```shell
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello src=root tag=1
Tue, 7 Nov 2017 23:55:42 +0000 - info: world src=root marker=49
```
Multi-target example:
```rust
let logger = Logger::new(targets![
Console::new(),
JsonFile::open("path/to/logfile.json"),
], context!{ some_meta_key: "some_meta_value" });
logger.info("hello");
let sub_logger = logger.ctx(context!{ marker: "49" });
logger.warn("world");
```
_Shell_:
```shell
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello some_meta_key=some_meta_value
Tue, 7 Nov 2017 23:55:42 +0000 - warn: world some_meta_key=some_meta_value marker=49
```
_Log File_:
```json
{ "level": "info", "message": "hello", "context": { "some_meta_key": "some_meta_value" } }
{ "level": "warn", "message": "world", "context": { "some_meta_key": "some_meta_value", "marker": "49" } }
```
Quil is a easy to use library that supports message levels, multiple
targets, and message contexts. Quil is thread safe and so it is possible
to send loggers accross threads.
[Documentation](https://docs.rs/quil)
# Examples
Basic example:
```rust
let logger = Logger::new(Console::new(), context!{ src: "root" });
logger.info("hello world");
```
```shell
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello world src=root
```
Sub-context example:
```rust
let logger = Logger::new(Console::new(), context!{ src: "root", tag: "1" });
logger.info("hello");
let sub_logger = logger.ctx(context!{ tag: "", marker: "49" });
logger.info("world");
```
```shell
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello src=root tag=1
Tue, 7 Nov 2017 23:55:42 +0000 - info: world src=root marker=49
```