Skip to content

Commit 32e0b6e

Browse files
committed
some logging QOL
1 parent 56ab36a commit 32e0b6e

File tree

5 files changed

+113
-121
lines changed

5 files changed

+113
-121
lines changed

.gitignore

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/target
2-
.DS_Store
3-
.vscode/*
42
/data
3+
.vscode/*
4+
.DS_Store
55
.todo
66
.env
77
.swp
8-
profile.json
98
*.pgcopy
10-
analysis/*.png
9+
*.log
10+
*.png

Cargo.lock

+84-97
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ rand = { version = "0.8.5", features = ["small_rng"] }
1818
bytes = "1.0"
1919
num_cpus = "1.16.0"
2020
log = "0.4.22"
21-
env_logger = "0.11.5"
2221
rayon = "1.10.0"
2322
byteorder = "1.5.0"
2423
indicatif = "0.17.8"
24+
simplelog = "0.12.2"
2525

2626
[dev-dependencies]
2727
criterion = { version = "0.3", features = ["html_reports"] }

src/clustering/layer.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use std::collections::BTreeMap;
2424
/// - CPU: O(N) for kmeans clustering
2525
/// - RAM: O(N^2) for learned metric
2626
/// - RAM: O(N) for learned centroids
27-
const N_KMEANS_CENTROIDS: usize = 128;
27+
const N_KMEANS_CENTROIDS: usize = 256;
2828

2929
/// number of kmeans iterations.
3030
/// this controls the precision of the abstraction space.
@@ -219,7 +219,7 @@ impl Layer {
219219
self.lookup.assign(abstraction, observation);
220220
self.kmeans.absorb(abstraction, histogram);
221221
}
222-
log::info!("{:>12.8}", loss / self.points.0.len() as f32);
222+
log::debug!("LOSS {:>12.8}", loss / self.points.0.len() as f32);
223223
}
224224
/// centroid drift may make it such that some centroids are empty
225225
/// so we reinitialize empty centroids with random Observations if necessary

src/main.rs

+22-17
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,26 @@ fn main() {
5858
// 2003. Using the Triangle Inequality to Accelerate-Means (https://cdn.aaai.org/ICML/2003/ICML03-022.pdf) In ICML.
5959

6060
fn logging() {
61-
use std::io::Write;
62-
use std::time::Instant;
63-
let start = Instant::now();
64-
env_logger::Builder::new()
65-
.filter(None, log::LevelFilter::Info)
66-
.format(move |buffer, record| {
67-
let elapsed = start.elapsed();
68-
writeln!(
69-
buffer,
70-
"{:02}:{:02}:{:02} - {}",
71-
(elapsed.as_secs() / 3600),
72-
(elapsed.as_secs() % 3600) / 60,
73-
(elapsed.as_secs() % 60),
74-
record.args()
75-
)
76-
})
77-
.init();
61+
std::fs::create_dir_all("logs").expect("create logs directory");
62+
let config = simplelog::ConfigBuilder::new()
63+
.set_location_level(log::LevelFilter::Off)
64+
.set_target_level(log::LevelFilter::Off)
65+
.set_thread_level(log::LevelFilter::Off)
66+
.build();
67+
let time = std::time::SystemTime::now()
68+
.duration_since(std::time::UNIX_EPOCH)
69+
.expect("time moves slow")
70+
.as_secs();
71+
let file = simplelog::WriteLogger::new(
72+
log::LevelFilter::Debug,
73+
config.clone(),
74+
std::fs::File::create(format!("logs/{}.log", time)).expect("create log file"),
75+
);
76+
let term = simplelog::TermLogger::new(
77+
log::LevelFilter::Info,
78+
config.clone(),
79+
simplelog::TerminalMode::Mixed,
80+
simplelog::ColorChoice::Auto,
81+
);
82+
simplelog::CombinedLogger::init(vec![term, file]).expect("initialize logger");
7883
}

0 commit comments

Comments
 (0)