event-logger 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/event_logger.rb +47 -0
  3. metadata +57 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ea2137e6df18f6ec102e72dfa4e764a3c0d08435
4
+ data.tar.gz: e688dc32cc1b81131dc1627544704cf51b097798
5
+ SHA512:
6
+ metadata.gz: 3b52dbfde6ea162128c8a8fd98cb823be1f2f55a7fe61b586fd0ee0890d8c070984e2b71b020958206a6e2c8f20492adba5c169eddbe62a6f95bc6f919312fef
7
+ data.tar.gz: df0c9a7010a3707a8816ce7903b40955761667c0c19227c5f350c0dfcc0c833e5939364e501932b4ae22bc5fe66852e59db80efd76fd1e96c506db04b648993e
@@ -0,0 +1,47 @@
1
+ require 'singleton'
2
+ require 'logger'
3
+ require 'uuidtools'
4
+ require 'json'
5
+
6
+ # Event logger based on:
7
+ # https://blog.logentries.com/2015/07/ditch-the-debugger-and-use-log-analysis-instead/
8
+ class EventLogger
9
+ attr_accessor :logger
10
+ attr_accessor :mapping
11
+
12
+ include Singleton
13
+
14
+ def initialize
15
+ @logger = Logger.new(STDOUT)
16
+ @mapping = nil
17
+ end
18
+
19
+ def self.log(*args)
20
+ instance.log(*args)
21
+ end
22
+
23
+ def log(type, details = {})
24
+ severity = if details.key?(:severity)
25
+ details.delete(:severity)
26
+ elsif @mapping && @mapping.key?(details[:name])
27
+ @mapping[details[:name]][:severity]
28
+ else
29
+ 'info'
30
+ end
31
+ @logger.send(severity, format_log_entry(details_for(type, details)))
32
+ end
33
+
34
+ def create_correlation_id
35
+ UUIDTools::UUID.random_create.to_s
36
+ end
37
+
38
+ private
39
+
40
+ def details_for(type, details)
41
+ { type: type }.merge(details)
42
+ end
43
+
44
+ def format_log_entry(details = {})
45
+ JSON.generate(details)
46
+ end
47
+ end
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: event-logger
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Honeycomb
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: uuidtools
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Consistent Event Logging
28
+ email: developers@honeycomb.tv
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/event_logger.rb
34
+ homepage:
35
+ licenses: []
36
+ metadata: {}
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ requirements: []
52
+ rubyforge_project:
53
+ rubygems_version: 2.6.11
54
+ signing_key:
55
+ specification_version: 4
56
+ summary: Event Logger
57
+ test_files: []