aboutsummaryrefslogtreecommitdiffstats
path: root/src/db.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@bunny.garden>2025-06-05 15:59:38 +0100
committerLibravatar cel 🌸 <cel@bunny.garden>2025-06-05 15:59:38 +0100
commit7220d1fd3795a6ec5339ade2c8c9f8fa0718dbd3 (patch)
tree03dc9f58011f7e6f5621deaa96211a16d8d91523 /src/db.rs
parent76aacb9bb017cb3edb81d965690229544cbf0a66 (diff)
downloadfj-7220d1fd3795a6ec5339ade2c8c9f8fa0718dbd3.tar.gz
fj-7220d1fd3795a6ec5339ade2c8c9f8fa0718dbd3.tar.bz2
fj-7220d1fd3795a6ec5339ade2c8c9f8fa0718dbd3.zip
feat: logging
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/db.rs b/src/db.rs
index 373b7ca..22bbdd1 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -1,7 +1,12 @@
-use std::{collections::HashSet, path::Path};
+use std::{collections::HashSet, ffi::c_int, path::Path};
use chrono::NaiveDateTime;
-use rusqlite::{params, params_from_iter, Connection, ToSql};
+use rusqlite::{
+ params, params_from_iter,
+ trace::{config_log, TraceEvent, TraceEventCodes},
+ Connection, ToSql,
+};
+use tracing::{debug, info};
use uuid::Uuid;
use crate::{
@@ -12,6 +17,21 @@ use crate::{
struct Db(Connection);
+fn log(int: c_int, log: &str) {
+ info!("sqlite: {}", log);
+}
+
+fn trace_fn(event: &str) {
+ debug!("sqlite: {}", event);
+ // match event {
+ // TraceEvent::Stmt(stmt_ref, _) => debug!("sqlite: {}", stmt_ref.sql()),
+ // TraceEvent::Profile(stmt_ref, duration) => {}
+ // TraceEvent::Row(stmt_ref) => debug!("sqlite: {}", stmt_ref.sql()),
+ // TraceEvent::Close(conn_ref) => {}
+ // _ => {}
+ // }
+}
+
impl Db {
pub fn create_connect_and_migrate(
path: impl AsRef<Path>,
@@ -41,7 +61,11 @@ impl Db {
}
pub fn create_connect_memory() -> std::result::Result<Self, DatabaseOpenError> {
- let db = Connection::open_in_memory()?;
+ let mut db = Connection::open_in_memory()?;
+ db.trace(Some(trace_fn));
+ // unsafe {
+ // config_log(Some(log))?;
+ // }
db.execute_batch(include_str!("../migrations/1.sql"))?;
Ok(Self(db))
}
@@ -239,6 +263,8 @@ impl ToSql for LogFilter {
mod tests {
use std::collections::HashSet;
+ use test_log::test;
+
use crate::task::{Category, Task};
use super::Db;