logr 0.1.0 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: edc6a47b0f6e94f82ae3e8d98162b465cdd52d80
4
- data.tar.gz: 797e47c86a404a48fca101fb572617311bf0ecb4
3
+ metadata.gz: db115878f6e900285e66ed61c3468cacbd708d2d
4
+ data.tar.gz: 1254b529748486315ae7fddc34888679e78f8a08
5
5
  SHA512:
6
- metadata.gz: 9a472a43d476c50e83fd523ab22ebeee3cdea01463ffcda5d5724135dab53143404616ec5e58264e03cd239dcb12251e09d3ec90568a24446614d97ac4a35489
7
- data.tar.gz: c2a461065fa95c510d37c5acc66d7eac59f0a3e965b6686a277a0da7b69bd505d3d5e1f7d1032c958558e4837527f94a53b984a4a0fffec885053420e615ca86
6
+ metadata.gz: 892d1cb4fadd083d0b0e06e24a915a93a271a99a6991162ddab1aefb5f4cc7aac6bbc97133321d9c76794e87059b39393f4a6b1190f4aca2012ff0bd90a330ba
7
+ data.tar.gz: b8c7bc3e588832c5b26f0c45dace7ffb9772fbdb9511f106f9e33a6d3b1bf2738c7aa5ae87c42ee3428ef94fb6c7954d999a65b249e7b4456b2e472b886374d1
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Structured logging with metrics and events.
4
4
 
5
- ![Travis](https://api.travis-ci.org/sspinc/logr.svg?branch=master)
5
+ ![CircleCI](https://circleci.com/gh/sspinc/logr.svg?style=shield&circle-token=:circle-token)
6
6
 
7
7
  ## Description
8
8
 
@@ -91,10 +91,19 @@ Log line with simple message:
91
91
  "timestamp":"2015-11-16 16:47:42 UTC",
92
92
  "level":"WARN",
93
93
  "logger":"your-logger-name",
94
- "message":"Oh-oh somethign is fishy!"
94
+ "message":"Oh-oh something is fishy!"
95
95
  }
96
96
  ```
97
97
 
98
+ The default log level is INFO, you can overwrite this by providing the
99
+ `$LOG_LEVEL` environmental variable or setting the log level in
100
+ `Logr::Logger.new`. If you'd like to use `$LOG_LEVEL` for something
101
+ else you can use another env variable name by passing the name to
102
+ `Logr::Logger.new` as below:
103
+ ```ruby
104
+ Logr::Logger.new('your-logger-name', level: Logr.parse_level(var: 'YOUR_ENV_VARIABLE'))
105
+ ```
106
+
98
107
  ## Development
99
108
 
100
109
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -0,0 +1,7 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.2.2
4
+
5
+ dependencies:
6
+ pre:
7
+ - gem install bundler --version 1.10
@@ -1,45 +1,19 @@
1
- require "logger"
2
-
3
1
  require "logr/version"
4
- require "logr/entry"
5
- require "logr/json_formatter"
2
+ require "logr/logger"
6
3
 
7
4
  module Logr
8
- class Logger
9
- def initialize(name, level: ::Logger::INFO, log_device: STDOUT)
10
- @logger = ::Logger.new(log_device).tap do |logger|
11
- logger.formatter = JSONFormatter.new
12
- logger.progname = name
13
- logger.level = level
14
- end
15
- end
16
-
17
- def event(name, tags={})
18
- Entry.new(@logger).event(name, tags)
19
- end
20
-
21
- def metric(name, value, type: "counter")
22
- Entry.new(@logger).metric(name, value, type: type)
23
- end
24
-
25
- def debug(message)
26
- Entry.new(@logger).debug(message)
27
- end
28
-
29
- def info(message)
30
- Entry.new(@logger).info(message)
31
- end
32
-
33
- def warn(message)
34
- Entry.new(@logger).warn(message)
35
- end
36
-
37
- def error(message)
38
- Entry.new(@logger).error(message)
39
- end
40
-
41
- def fatal(message)
42
- Entry.new(@logger).fatal(message)
43
- end
5
+ # Parse log level from an environment variable
6
+ #
7
+ # @param default [Symbol] the default log level
8
+ # @param var [String] the environment variable to use
9
+ # @return the parsed logger level as a number
10
+ def self.parse_level(default: :info, var: "LOG_LEVEL")
11
+ valid_levels = %w[DEBUG INFO WARN ERROR FATAL UNKNOWN]
12
+
13
+ default = default.upcase
14
+ level = ENV.fetch(var, default).upcase.to_s
15
+ level = valid_levels.find(-> { default }) { |lvl| lvl == level }
16
+
17
+ ::Logger.const_get(level)
44
18
  end
45
19
  end
@@ -0,0 +1,44 @@
1
+ require "logger"
2
+
3
+ require "logr/entry"
4
+ require "logr/json_formatter"
5
+
6
+ module Logr
7
+ class Logger
8
+ def initialize(name, level: Logr.parse_level, log_device: STDOUT)
9
+ @logger = ::Logger.new(log_device).tap do |logger|
10
+ logger.formatter = JSONFormatter.new
11
+ logger.progname = name
12
+ logger.level = level
13
+ end
14
+ end
15
+
16
+ def event(name, tags={})
17
+ Entry.new(@logger).event(name, tags)
18
+ end
19
+
20
+ def metric(name, value, type: "counter")
21
+ Entry.new(@logger).metric(name, value, type: type)
22
+ end
23
+
24
+ def debug(message)
25
+ Entry.new(@logger).debug(message)
26
+ end
27
+
28
+ def info(message)
29
+ Entry.new(@logger).info(message)
30
+ end
31
+
32
+ def warn(message)
33
+ Entry.new(@logger).warn(message)
34
+ end
35
+
36
+ def error(message)
37
+ Entry.new(@logger).error(message)
38
+ end
39
+
40
+ def fatal(message)
41
+ Entry.new(@logger).fatal(message)
42
+ end
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module Logr
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -22,6 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
  spec.add_development_dependency "byebug"
24
24
  spec.add_development_dependency "rspec", "~> 3.0"
25
-
26
- spec.add_runtime_dependency "timecop", "~> 0.8"
25
+ spec.add_development_dependency "timecop", "~> 0.8"
27
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Marton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-18 00:00:00.000000000 Z
11
+ date: 2016-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,7 +73,7 @@ dependencies:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.8'
76
- type: :runtime
76
+ type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
@@ -98,10 +98,12 @@ files:
98
98
  - Rakefile
99
99
  - bin/console
100
100
  - bin/setup
101
+ - circle.yml
101
102
  - lib/logr.rb
102
103
  - lib/logr/entry.rb
103
104
  - lib/logr/event.rb
104
105
  - lib/logr/json_formatter.rb
106
+ - lib/logr/logger.rb
105
107
  - lib/logr/metric.rb
106
108
  - lib/logr/version.rb
107
109
  - logr.gemspec
@@ -130,3 +132,4 @@ signing_key:
130
132
  specification_version: 4
131
133
  summary: Structured logging with events and metrics
132
134
  test_files: []
135
+ has_rdoc: