Class: Fluent::Plugin::WinevtSAXparser
- Inherits:
-
Parser
- Object
- Parser
- Fluent::Plugin::WinevtSAXparser
- Defined in:
- lib/fluent/plugin/parser_winevt_sax.rb
Instance Method Summary collapse
- #configure(conf) ⇒ Object
-
#initialize ⇒ WinevtSAXparser
constructor
A new instance of WinevtSAXparser.
- #parse(text) {|time, evtxml.result| ... } ⇒ Object
- #preserve_qualifiers? ⇒ Boolean
- #winevt_xml? ⇒ Boolean
Constructor Details
#initialize ⇒ WinevtSAXparser
Returns a new instance of WinevtSAXparser.
10 11 12 13 |
# File 'lib/fluent/plugin/parser_winevt_sax.rb', line 10 def initialize super @use_nokogiri = false end |
Instance Method Details
#configure(conf) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fluent/plugin/parser_winevt_sax.rb', line 15 def configure(conf) super if @parser != :rexml begin require 'nokogiri' require 'fluent/plugin/winevt_sax_document_nokogiri' @use_nokogiri = true rescue if @parser == :nokogiri raise Fluent::ConfigError, "Nokogiri is required when 'parser nokogiri' is specified, but it isn't installed. " \ "Install nokogiri, or set 'parser' to 'rexml' or 'auto': #{e.}" end end end if !@use_nokogiri require 'rexml/parsers/sax2parser' require 'fluent/plugin/winevt_sax_document_rexml' end end |
#parse(text) {|time, evtxml.result| ... } ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/fluent/plugin/parser_winevt_sax.rb', line 45 def parse(text) if @use_nokogiri evtxml = WinevtXMLDocumentNokogiri.new(@preserve_qualifiers) parser = Nokogiri::XML::SAX::Parser.new(evtxml) parser.parse(text) else evtxml = WinevtXMLDocumentREXML.new(@preserve_qualifiers) parser = REXML::Parsers::SAX2Parser.new(text) parser.listen(evtxml) parser.parse end time = @estimate_current_event ? Fluent::EventTime.now : nil yield time, evtxml.result end |
#preserve_qualifiers? ⇒ Boolean
41 42 43 |
# File 'lib/fluent/plugin/parser_winevt_sax.rb', line 41 def preserve_qualifiers? @preserve_qualifiers end |
#winevt_xml? ⇒ Boolean
37 38 39 |
# File 'lib/fluent/plugin/parser_winevt_sax.rb', line 37 def winevt_xml? true end |