Basic Parser component that supports multiple different sources and log formats
```rust // Create component and register parsers let mut parsercomponent = BasicParserComponent::new(); parsercomponent.addparser(Box::from(parser1)); parsercomponent.add_parser(Box::from(parser2));
// Send the component to the kernel to be managed kernel.addcomponent(parsercomponent); ```
There are some examples in the µSIEM library used for testing.
```rust
pub struct DummyParserText { schema : FieldSchema } impl DummyParserText { pub fn new() -> Self { Self { schema : FieldSchema::new() } } }
impl LogParser for DummyParserText {
fn parselog(
&self,
mut log: SiemLog,
_datasets: &DatasetHolder,
) -> Result
fn generator(&self) -> Box<dyn LogGenerator> {
return Box::new(DummyLogGenerator {});
}
}
let parser1 = DummyParserText::new(); parsercomponent.addparser(Box::from(parser1));
```