Expand description
Journal file registry and repository
This crate provides functionality for discovering, tracking, and monitoring systemd journal files in directories.
§Key Components
- Repository: Types for representing journal files and organizing them into chains
- Registry: High-level interface for watching directories and tracking file changes
§Usage
use journal_registry::{Registry, Monitor};
use journal_common::Seconds;
let (monitor, mut event_receiver) = Monitor::new()?;
let registry = Registry::new(monitor);
// Watch a directory for journal files
registry.watch_directory("/var/log/journal")?;
// Process file system events in background
let registry_clone = registry.clone();
tokio::spawn(async move {
while let Some(event) = event_receiver.recv().await {
if let Err(e) = registry_clone.process_event(event) {
eprintln!("Error processing event: {}", e);
}
}
});
// Find files in a time range (seconds since epoch)
let files = registry.find_files_in_range(Seconds(1000000), Seconds(2000000))?;Re-exports§
pub use registry::Monitor;pub use registry::Registry;pub use registry::RegistryError;pub use repository::File;pub use repository::FileInfo;pub use repository::Origin;pub use repository::Source;pub use repository::Status;pub use time_range::TimeRange;
Modules§
- registry
- Journal file registry with monitoring and metadata tracking
- repository
- Journal file repository
- time_
range - Time range metadata for indexed journal files