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::echobox::EchoboxModule;
|
||||
use modules::autolink::AutolinkModule;
|
||||
use modules::logger::LoggerModule;
|
||||
|
||||
pub struct ModuleLoader {
|
||||
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("echobox", EchoboxModule::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 {
|
||||
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