logr 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: