add "Logger" module which logs all received events
This commit is contained in:
parent
2baffdacd3
commit
6dda3e227f
@ -13,6 +13,7 @@ use modules::random::RandomModule;
|
|||||||
use modules::pvn::PvnModule;
|
use modules::pvn::PvnModule;
|
||||||
use modules::echobox::EchoboxModule;
|
use modules::echobox::EchoboxModule;
|
||||||
use modules::autolink::AutolinkModule;
|
use modules::autolink::AutolinkModule;
|
||||||
|
use modules::logger::LoggerModule;
|
||||||
|
|
||||||
pub struct ModuleLoader {
|
pub struct ModuleLoader {
|
||||||
types: BTreeMap<&'static str, fn(&Table, &Table) -> Module>
|
types: BTreeMap<&'static str, fn(&Table, &Table) -> Module>
|
||||||
@ -29,6 +30,7 @@ impl ModuleLoader {
|
|||||||
types.insert("pvn", PvnModule::new as fn(&Table, &Table) -> Module);
|
types.insert("pvn", PvnModule::new as fn(&Table, &Table) -> Module);
|
||||||
types.insert("echobox", EchoboxModule::new as fn(&Table, &Table) -> Module);
|
types.insert("echobox", EchoboxModule::new as fn(&Table, &Table) -> Module);
|
||||||
types.insert("autolink", AutolinkModule::new as fn(&Table, &Table) -> Module);
|
types.insert("autolink", AutolinkModule::new as fn(&Table, &Table) -> Module);
|
||||||
|
types.insert("logger", LoggerModule::new as fn(&Table, &Table) -> Module);
|
||||||
ModuleLoader {
|
ModuleLoader {
|
||||||
types: types
|
types: types
|
||||||
}
|
}
|
||||||
|
34
src/modules/logger.rs
Normal file
34
src/modules/logger.rs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
use modules::{Module, EventLoop};
|
||||||
|
use toml::Table;
|
||||||
|
|
||||||
|
use std::sync::Arc;
|
||||||
|
use std::sync::mpsc::Receiver;
|
||||||
|
use transformable_channels::mpsc::ExtSender;
|
||||||
|
|
||||||
|
use helpers::command::split_command;
|
||||||
|
use event::{Event, Envelope};
|
||||||
|
|
||||||
|
pub struct LoggerModule {}
|
||||||
|
|
||||||
|
impl LoggerModule {
|
||||||
|
pub fn new (_: &Table, configuration: &Table) -> Module {
|
||||||
|
Module {
|
||||||
|
module_type: String::from("logger"),
|
||||||
|
event_loop: Box::new(LoggerModule {}),
|
||||||
|
config: configuration.clone()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl EventLoop for LoggerModule {
|
||||||
|
fn run(&self, _: Box<ExtSender<Envelope>>, receiver: Receiver<Arc<Envelope>>) {
|
||||||
|
loop {
|
||||||
|
match receiver.recv() {
|
||||||
|
Ok(envelope) => {
|
||||||
|
info!("Received event envelope: {:?}", envelope);
|
||||||
|
}
|
||||||
|
Err(error) => { error!("Error {:?}", error) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user