Class: CefLogger
- Inherits:
-
Object
- Object
- CefLogger
- Defined in:
- lib/cef_logger.rb
Class Attribute Summary collapse
-
.facility ⇒ Object
Returns the value of attribute facility.
-
.product ⇒ Object
Returns the value of attribute product.
-
.program ⇒ Object
Returns the value of attribute program.
-
.vendor ⇒ Object
Returns the value of attribute vendor.
-
.version ⇒ Object
Returns the value of attribute version.
Class Method Summary collapse
- .compile(data) ⇒ Object
- .escape_header(value) ⇒ Object
- .escape_value(value) ⇒ Object
- .log(name: '', severity: 0, data: {}) ⇒ Object
- .logger ⇒ Object
Class Attribute Details
.facility ⇒ Object
Returns the value of attribute facility.
7 8 9 |
# File 'lib/cef_logger.rb', line 7 def facility @facility end |
.product ⇒ Object
Returns the value of attribute product.
7 8 9 |
# File 'lib/cef_logger.rb', line 7 def product @product end |
.program ⇒ Object
Returns the value of attribute program.
7 8 9 |
# File 'lib/cef_logger.rb', line 7 def program @program end |
.vendor ⇒ Object
Returns the value of attribute vendor.
7 8 9 |
# File 'lib/cef_logger.rb', line 7 def vendor @vendor end |
.version ⇒ Object
Returns the value of attribute version.
7 8 9 |
# File 'lib/cef_logger.rb', line 7 def version @version end |
Class Method Details
.compile(data) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/cef_logger.rb', line 45 def compile(data) case data when Hash data .map { |key, value| "#{key}=#{escape_value(value)}" } .join(' ') else raise "Can't compile non-hashes as extensions for CEF logging!" end end |
.escape_header(value) ⇒ Object
30 31 32 33 34 |
# File 'lib/cef_logger.rb', line 30 def escape_header(value) value .to_s .gsub('|', '\\|') end |
.escape_value(value) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/cef_logger.rb', line 36 def escape_value(value) value .to_s .gsub('\\', '\\\\\\') .gsub('=', '\\=') .gsub("\n", '\n') .gsub("\r", '\r') end |
.log(name: '', severity: 0, data: {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/cef_logger.rb', line 9 def log(name: '', severity: 0, data: {}) id = SecureRandom.uuid extension = compile data line = [ 'CEF:0', vendor, product, version, id, escape_header(name), severity, extension ].join('|') logger.info line end |
.logger ⇒ Object
56 57 58 |
# File 'lib/cef_logger.rb', line 56 def logger @logger ||= Syslog::Logger.new program, facility end |