5 releases (3 breaking)

0.4.0 Nov 18, 2024
0.3.0 Jun 1, 2023
0.2.0 Sep 21, 2022
0.1.1 Jul 1, 2020
0.1.0 Jan 20, 2018

#2 in #executed

Download history 2704/week @ 2025-12-01 3237/week @ 2025-12-08 1743/week @ 2025-12-15 2018/week @ 2025-12-22 466/week @ 2025-12-29 2314/week @ 2026-01-05 1448/week @ 2026-01-12 1376/week @ 2026-01-19 1929/week @ 2026-01-26 2185/week @ 2026-02-02 1747/week @ 2026-02-09 2023/week @ 2026-02-16 1425/week @ 2026-02-23 498/week @ 2026-03-02 1016/week @ 2026-03-09 391/week @ 2026-03-16

3,626 downloads per month
Used in 2 crates

MIT license

12KB
222 lines

Diesel Logger

Let's say you use Diesel like this:

let conn = SqliteConnection::establish("example.sqlite").unwrap();
// some commands that read/write from the conn database

You can change this to

let conn = SqliteConnection::establish("example.sqlite").unwrap();
let conn = LoggingConnection::new(conn);
// some commands that read/write from the conn database

to log everything. This produces a debug log on every query, an info on queries that take longer than 1 second, and a warning on queries that take longer than 5 seconds.

Example

$ cd example
$ cargo run
2022-06-06T22:42:29.266Z DEBUG [diesel_logger] Query ran in 4.9 ms: CREATE TABLE IF NOT EXISTS posts (id INTEGER, title TEXT, body TEXT, published BOOL);
2022-06-06T22:42:29.270Z DEBUG [diesel_logger] Query ran in 3.7 ms: INSERT INTO `posts` (`title`, `body`) VALUES (?, ?) -- binds: ["mytitle", "mybody"]

Dependencies

~4MB
~79K SLoC