legion-logging 0.1.3 → 1.1.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
  SHA256:
3
- metadata.gz: d51090ab287aaafdac5c5967383fbffcb83eaecd17effb7e494af0af144c21b3
4
- data.tar.gz: 66a07a8a4061e6f0cf7b1dfdd8f4e41ae82d25dda3507a4793ed2663f97aa57d
3
+ metadata.gz: e9ecd67d5e6c68af98e3b53869a576f4d9cfb4021498f66903bfd57b5ff533e1
4
+ data.tar.gz: 896e360f937631af59ea1cf4cba88be1baa8b6d23a432506c3c016db6c263f1f
5
5
  SHA512:
6
- metadata.gz: 5cfd036c34c5f0702428c5b5fdf002b5786d66f4146eb01dcf43e09bbfcc381fde546fa77545f0ce383ad4c4077ca1f312944726a2a5e5a1754ef879282bd206
7
- data.tar.gz: b6885cf0f30e24a2f593d57a179588e3090686a1f13d33962316ac0ef9cf49222c48f3542631c06a67ac8e19ebcdc3b795eed25bba561fc872dda9374581d2a8
6
+ metadata.gz: d8d7e995ca4a2ed5f54636ebbe9fdea124f47caea4e0c43c5e65dcfc5f6716d770394cc94d033fbfacdb6d2cb3cc8d80319637485a62388362eb8468842c482f
7
+ data.tar.gz: 15f2613124940fbeee5868992c6ef7f53f3b10950d2bb835145309c4a82a8a67a92f3de1e23fdbb71a91e68c4f6ba67eab43ee98d549d4f9e1d3d3c214c5a8a3
@@ -1,167 +1,83 @@
1
- version: 2 # use CircleCI 2.0
1
+ version: 2.1
2
+ orbs:
3
+ ruby: circleci/ruby@0.2.1
4
+ sonarcloud: sonarsource/sonarcloud@1.0.1
5
+
2
6
  jobs:
3
7
  "rubocop":
4
8
  docker:
5
- - image: circleci/ruby:2.4-node
9
+ - image: circleci/ruby:2.7-node
6
10
  steps:
7
11
  - checkout
8
- - run: gem install rubocop
12
+ - ruby/load-cache
13
+ - ruby/install-deps
9
14
  - run:
10
15
  name: Run Rubocop
11
- command: rubocop
12
- - store_test_results:
13
- path: test_results
14
- "ruby-2.0":
15
- docker:
16
- - image: circleci/ruby:2.0
17
- steps:
18
- - checkout
19
- - run:
20
- name: Bundle Install
21
- command: bundle install
22
- - run:
23
- name: Run RSpec
24
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
25
- when: always
26
- - store_test_results:
27
- path: test-results
28
- "ruby-2.1":
29
- docker:
30
- - image: circleci/ruby:2.1
31
- steps:
32
- - checkout
33
- - run:
34
- name: Bundle Install
35
- command: bundle install
36
- - run:
37
- name: Run RSpec
38
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
39
- when: always
40
- - store_test_results:
41
- path: test-results
42
- "ruby-2.2":
43
- docker:
44
- - image: circleci/ruby:2.2
45
- steps:
46
- - checkout
47
- - run:
48
- name: Bundle Install
49
- command: bundle install
50
- - run:
51
- name: Run RSpec
52
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
53
- when: always
54
- - store_test_results:
55
- path: test-results
56
-
57
- "ruby-2.3":
58
- docker:
59
- - image: circleci/ruby:2.3
60
- steps:
61
- - checkout
62
- - run:
63
- name: Bundle Install
64
- command: bundle install
65
- - run:
66
- name: Run RSpec
67
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
68
- when: always
69
- - store_test_results:
70
- path: test-results
71
-
72
- "ruby-2.4":
16
+ command: bundle exec rubocop
17
+ - ruby/save-cache
18
+ "ruby-two-five":
73
19
  docker:
74
- - image: circleci/ruby:2.4-node
20
+ - image: circleci/ruby:2.5
75
21
  steps:
76
22
  - checkout
77
- - run:
78
- name: Bundle Install
79
- command: bundle install
80
- - run:
81
- name: Run RSpec
82
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
83
- when: always
84
- - store_test_results:
85
- path: test-results
86
- "ruby-2.5":
23
+ - ruby/load-cache
24
+ - run:
25
+ name: update bundler
26
+ command: gem update bundler
27
+ - ruby/install-deps
28
+ - ruby/run-tests
29
+ - ruby/save-cache
30
+ "ruby-two-six":
87
31
  docker:
88
- - image: circleci/ruby:2.5-node
32
+ - image: circleci/ruby:2.6
89
33
  steps:
90
34
  - checkout
91
- - run:
92
- name: Bundle Install
93
- command: bundle install
94
- - run:
95
- name: Run RSpec
96
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
97
- when: always
98
- - store_test_results:
99
- path: test-results
100
- "ruby-2.6":
35
+ - ruby/load-cache
36
+ - run:
37
+ name: update bundler
38
+ command: gem update bundler
39
+ - ruby/install-deps
40
+ - ruby/run-tests
41
+ - ruby/save-cache
42
+ "ruby-two-seven":
101
43
  docker:
102
- - image: circleci/ruby:2.6-node
44
+ - image: circleci/ruby:2.7
45
+ - image: memcached:1.5-alpine
103
46
  steps:
104
47
  - checkout
105
- - run:
106
- name: Bundle Install
107
- command: bundle install
108
- - run:
109
- name: Run RSpec
110
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
111
- when: always
112
- - store_test_results:
113
- path: test-results
114
- "jruby-9.2":
48
+ - ruby/load-cache
49
+ - ruby/install-deps
50
+ - ruby/run-tests
51
+ - ruby/save-cache
52
+ "sonarcloud":
115
53
  docker:
116
- - image: circleci/jruby:9.2
54
+ - image: circleci/ruby:2.7
117
55
  steps:
118
56
  - checkout
57
+ - ruby/load-cache
58
+ - ruby/install-deps
59
+ - ruby/run-tests
119
60
  - run:
120
- name: Bundle Install
121
- command: bundle install
122
- - run:
123
- name: Run RSpec
124
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
125
- when: always
126
- - store_test_results:
127
- path: test-results
61
+ name: Run Rubocop
62
+ command: bundle exec rubocop --format=json --out=rubocop-result.json
63
+ - sonarcloud/scan
64
+ - ruby/save-cache
128
65
 
129
66
  workflows:
130
67
  version: 2
131
- cop_rake_deploy:
68
+ rubocop-rspec:
132
69
  jobs:
133
70
  - rubocop
134
- # - ruby-2.2:
135
- # requires:
136
- # - ruby-2.4
137
- # filters:
138
- # branches:
139
- # only: /\bdevelop\b|\bmaster\b/
140
- - ruby-2.3:
141
- requires:
142
- - ruby-2.4
143
- filters:
144
- branches:
145
- only: /\bdevelop\b|\bmaster\b/
146
- - ruby-2.4:
71
+ - ruby-two-five:
147
72
  requires:
148
73
  - rubocop
149
- - ruby-2.5:
74
+ - ruby-two-six:
150
75
  requires:
151
- - ruby-2.4
152
- filters:
153
- branches:
154
- only: /\bdevelop\b|\bmaster\b/
155
- - ruby-2.6:
76
+ - ruby-two-five
77
+ - ruby-two-seven:
156
78
  requires:
157
- - ruby-2.4
158
- filters:
159
- branches:
160
- only: /\bdevelop\b|\bmaster\b/
161
- - jruby-9.2:
79
+ - ruby-two-five
80
+ - sonarcloud:
162
81
  requires:
163
- #- ruby-2.2
164
- - ruby-2.3
165
- - ruby-2.4
166
- - ruby-2.5
167
- - ruby-2.6
82
+ - ruby-two-seven
83
+ - ruby-two-six
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build legion-logging-0.1.3.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Remove any temporary products" fullCmd="clean" taksId="clean" /><RakeTask description="Remove any generated files" fullCmd="clobber" taksId="clobber" /><RakeTask description="Build and install legion-logging-0.1.3.gem into system gems" fullCmd="install" taksId="install" /><RakeGroup description="" fullCmd="" taksId="install"><RakeTask description="Build and install legion-logging-0.1.3.gem into system gems without network access" fullCmd="install:local" taksId="local" /></RakeGroup><RakeTask description="Create tag v0.1.3 and build and push legion-logging-0.1.3.gem to rubygems.org" fullCmd="release[remote]" taksId="release[remote]" /><RakeTask description="Run RSpec code examples" fullCmd="spec" taksId="spec" /><RakeTask description="" fullCmd="default" taksId="default" /><RakeTask description="" fullCmd="release" taksId="release" /><RakeGroup description="" fullCmd="" taksId="release"><RakeTask description="" fullCmd="release:guard_clean" taksId="guard_clean" /><RakeTask description="" fullCmd="release:rubygem_push" taksId="rubygem_push" /><RakeTask description="" fullCmd="release:source_control_push" taksId="source_control_push" /></RakeGroup></RakeGroup></Settings>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="ModuleRunConfigurationManager">
4
+ <shared />
5
+ </component>
6
+ <component name="NewModuleRootManager">
7
+ <content url="file://$MODULE_DIR$" />
8
+ <orderEntry type="jdk" jdkName="RVM: ruby-2.7.0" jdkType="RUBY_SDK" />
9
+ <orderEntry type="sourceFolder" forTests="false" />
10
+ <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.1, RVM: ruby-2.7.0) [gem]" level="application" />
11
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.4, RVM: ruby-2.7.0) [gem]" level="application" />
12
+ <orderEntry type="library" scope="PROVIDED" name="chef (v16.1.0, RVM: ruby-2.7.0) [gem]" level="application" />
13
+ <orderEntry type="library" scope="PROVIDED" name="codecov (v0.2.2, RVM: ruby-2.7.0) [gem]" level="application" />
14
+ <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, RVM: ruby-2.7.0) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.4.4, RVM: ruby-2.7.0) [gem]" level="application" />
16
+ <orderEntry type="library" scope="PROVIDED" name="docile (v1.3.2, RVM: ruby-2.7.0) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="json (v2.3.1, RVM: ruby-2.7.0) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="parallel (v1.19.2, RVM: ruby-2.7.0) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="parser (v2.7.1.4, RVM: ruby-2.7.0) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.0.0, RVM: ruby-2.7.0) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.1, RVM: ruby-2.7.0) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v1.7.1, RVM: ruby-2.7.0) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.4, RVM: ruby-2.7.0) [gem]" level="application" />
24
+ <orderEntry type="library" scope="PROVIDED" name="rspec (v3.9.0, RVM: ruby-2.7.0) [gem]" level="application" />
25
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.9.2, RVM: ruby-2.7.0) [gem]" level="application" />
26
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.9.2, RVM: ruby-2.7.0) [gem]" level="application" />
27
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.9.1, RVM: ruby-2.7.0) [gem]" level="application" />
28
+ <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.9.3, RVM: ruby-2.7.0) [gem]" level="application" />
29
+ <orderEntry type="library" scope="PROVIDED" name="rspec_junit_formatter (v0.4.1, RVM: ruby-2.7.0) [gem]" level="application" />
30
+ <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.88.0, RVM: ruby-2.7.0) [gem]" level="application" />
31
+ <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v0.2.0, RVM: ruby-2.7.0) [gem]" level="application" />
32
+ <orderEntry type="library" scope="PROVIDED" name="rubocop-performance (v1.7.1, RVM: ruby-2.7.0) [gem]" level="application" />
33
+ <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.10.1, RVM: ruby-2.7.0) [gem]" level="application" />
34
+ <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.17.1, RVM: ruby-2.7.0) [gem]" level="application" />
35
+ <orderEntry type="library" scope="PROVIDED" name="simplecov-html (v0.10.2, RVM: ruby-2.7.0) [gem]" level="application" />
36
+ <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.7.0, RVM: ruby-2.7.0) [gem]" level="application" />
37
+ </component>
38
+ </module>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JavaScriptSettings">
4
+ <option name="languageLevel" value="ES6" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.6.3" project-jdk-type="RUBY_SDK" />
7
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/legion-logging.iml" filepath="$PROJECT_DIR$/.idea/legion-logging.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VagrantProjectSettings">
4
+ <option name="instanceFolder" value="" />
5
+ <option name="provider" value="" />
6
+ </component>
7
+ </project>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="CoverageOptionsProvider">
4
+ <option name="myAddOrReplace" value="0" />
5
+ </component>
6
+ <component name="Git.Settings">
7
+ <option name="PUSH_AUTO_UPDATE" value="true" />
8
+ <option name="ROOT_SYNC" value="DONT_SYNC" />
9
+ </component>
10
+ <component name="ProjectId" id="1Yl3Ni6NlUlB0HwEdc23TcNXMXO" />
11
+ <component name="PropertiesComponent">
12
+ <property name="settings.editor.selected.configurable" value="reference.settingsdialog.project.vagrant" />
13
+ </component>
14
+ </project>
@@ -1,11 +1,11 @@
1
- Metrics/LineLength:
1
+ Layout/LineLength:
2
2
  Max: 120
3
3
  Metrics/MethodLength:
4
4
  Max: 30
5
5
  Metrics/ClassLength:
6
6
  Max: 1500
7
7
  Metrics/BlockLength:
8
- Max: 50
8
+ Max: 75
9
9
  Layout/SpaceAroundEqualsInParameterDefault:
10
10
  EnforcedStyle: space
11
11
  Style/SymbolArray:
@@ -16,6 +16,7 @@ Layout/HashAlignment:
16
16
  Style/Documentation:
17
17
  Enabled: false
18
18
  AllCops:
19
- TargetRubyVersion: 2.6
19
+ TargetRubyVersion: 2.5
20
+ NewCops: enable
20
21
  Style/FrozenStringLiteralComment:
21
22
  Enabled: false
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in legion-logging.gemspec
4
3
  gemspec
@@ -1,33 +1,18 @@
1
- image: ruby:2.4.0
1
+ image: ruby:2.7.0
2
2
 
3
3
  pipelines:
4
4
  branches:
5
5
  master:
6
- - step:
7
- caches:
8
- - bundler
9
- script:
10
- - gem install bundle rubocop
11
- - bundle install
12
- - rubocop
13
- - rake
14
- - step:
15
- name: Deploy to test gem server
16
- deployment: test
17
- script:
18
- - gem install bundle geminabox
19
- - bundle install
20
- - gem build legion-logging.gemspec
21
- - gem inabox legion-logging*.gem -g https://gems.whonodes.org/ -o
22
- default:
23
- - step:
24
- caches:
25
- - bundler
26
- script:
27
- - gem install bundle rubocop
28
- - bundle install
29
- - rubocop
30
- - rake
31
- definitions:
32
- caches:
33
- bundler: vendor/bundle
6
+ - step:
7
+ name: Push to RubyGems
8
+ deployment: RubyGems
9
+ script:
10
+ - gem install bundler gem-release rake rspec
11
+ - bundle install
12
+ - rake build
13
+ - mkdir .gem
14
+ - (umask 077 ; echo $gem_creds | base64 --decode > .gem/credentials)
15
+ - gem release
16
+ - gem tag --push
17
+ artifacts:
18
+ - pkg/**
@@ -22,18 +22,17 @@ Gem::Specification.new do |spec|
22
22
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
23
23
  f.match(%r{^(test|spec|features)/})
24
24
  end
25
- spec.bindir = 'exe'
26
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
26
  spec.require_paths = ['lib']
28
27
 
29
28
  spec.add_development_dependency 'bundler'
30
29
  spec.add_development_dependency 'codecov'
31
- spec.add_development_dependency 'rake', '~> 10.0'
32
- spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'rake'
31
+ spec.add_development_dependency 'rspec'
33
32
  spec.add_development_dependency 'rspec_junit_formatter'
34
33
  spec.add_development_dependency 'rubocop'
35
- spec.add_development_dependency 'simplecov'
34
+ spec.add_development_dependency 'rubocop-performance'
35
+ spec.add_development_dependency 'simplecov', '< 0.18.0'
36
36
 
37
- spec.add_dependency 'logger', '~> 1.3'
38
37
  spec.add_dependency 'rainbow', '~> 3'
39
38
  end
@@ -13,6 +13,10 @@ module Legion
13
13
  include Legion::Logging::Builder
14
14
  attr_reader :log, :color
15
15
 
16
+ def level
17
+ @log.level
18
+ end
19
+
16
20
  def setup(options = {})
17
21
  output(options)
18
22
  log_level(options[:level])
@@ -1,9 +1,25 @@
1
1
  module Legion
2
2
  module Logging
3
3
  module Builder
4
- def log_format(_options = {}, log = @log)
4
+ def log_format(options = {}, log = @log) # rubocop:disable Metrics/AbcSize
5
5
  log.formatter = proc do |severity, datetime, _progname, msg|
6
- "[#{datetime}][#{::Process.pid}] #{severity} #{msg}\n"
6
+ options[:lex_name] = options.key?(:lex) ? "[lex-#{options[:lex]}]" : nil
7
+ unless options[:lex_name].nil?
8
+ data = caller_locations[4].to_s.split('/').last(2)
9
+ runner_trace = {
10
+ type: data[0],
11
+ file: data[1].split('.')[0],
12
+ function: data[1].split('`')[1].delete_suffix('\''),
13
+ line_number: data[1].split(':')[1]
14
+ }
15
+ end
16
+ string = "[#{datetime}][#{::Process.pid}]"
17
+ string.concat(options[:lex_name]) unless options[:lex_name].nil?
18
+ if runner_trace.is_a?(Hash) && (options[:extended] || severity == 'debug')
19
+ string.concat("[#{runner_trace[:type]}:#{runner_trace[:file]}:#{runner_trace[:line_number]}]")
20
+ end
21
+ string.concat(" #{severity} #{msg}\n")
22
+ string
7
23
  end
8
24
  end
9
25
 
@@ -12,16 +28,19 @@ module Legion
12
28
  @log = ::Logger.new(options[:log_file]) unless options[:log_file].nil?
13
29
  end
14
30
 
15
- def log_level(level = 'debug', log = @log)
16
- if level == 'debug'
31
+ def log_level(level = 'info', log = @log)
32
+ case level
33
+ when 'trace'
34
+ log.level = ::Logger::INFO
35
+ when 'debug'
17
36
  log.level = ::Logger::DEBUG
18
- elsif level == 'info'
37
+ when 'info'
19
38
  log.level = ::Logger::INFO
20
- elsif level == 'warn'
39
+ when 'warn'
21
40
  log.level = ::Logger::WARN
22
- elsif level == 'error'
41
+ when 'error'
23
42
  log.level = ::Logger::ERROR
24
- elsif level == 'fatal'
43
+ when 'fatal'
25
44
  log.level = ::Logger::FATAL
26
45
  end
27
46
  @log = log
@@ -4,16 +4,20 @@ require 'legion/logging/builder'
4
4
  module Legion
5
5
  module Logging
6
6
  class Logger
7
- attr_reader :log, :color
7
+ attr_accessor :log, :color, :level, :lex, :log_file, :trace_enabled, :extended
8
+
8
9
  include Legion::Logging::Methods
9
10
  include Legion::Logging::Builder
10
11
 
11
- def initialize(options = {})
12
- output(options)
13
- log_level(options[:level])
14
- log_format(options)
15
- @color = options[:color]
16
- @color = true if options[:color].nil? && options[:log_file].nil?
12
+ def initialize(level: 'info', log_file: nil, lex: nil, trace: false, extended: false, trace_size: 4, **opts) # rubocop:disable Metrics/ParameterLists
13
+ output(logfile: log_file)
14
+ log_level(level)
15
+ log_format(lex: lex, extended: extended, **opts)
16
+ @color = opts[:color]
17
+ @color = true if opts[:color].nil? && log_file.nil?
18
+ @trace_enabled = trace
19
+ @trace_size = trace_size
20
+ @extended = extended
17
21
  end
18
22
  end
19
23
  end
@@ -1,31 +1,55 @@
1
1
  module Legion
2
2
  module Logging
3
3
  module Methods
4
+ def trace(raw_message = nil, log = @log, size: @trace_size, log_caller: true) # rubocop:disable Metrics/PerceivedComplexity, Metrics/AbcSize
5
+ return unless @trace_enabled
6
+
7
+ raw_message = yield if raw_message.nil? && block_given?
8
+ message = Rainbow('Tracing: ').cyan
9
+ message.concat Rainbow(raw_message + ' ').cyan
10
+ if log_caller && size.nil?
11
+ message.concat Rainbow(caller_locations).cyan.underline
12
+ elsif log_caller
13
+ message.concat Rainbow(caller_locations[0..size]).cyan.underline
14
+ end
15
+ log.unknown(message)
16
+ end
17
+
4
18
  def debug(message = nil, log = @log)
19
+ return unless log.level < 1
20
+
5
21
  message = yield if message.nil? && block_given?
6
22
  message = Rainbow(message).blue if @color
7
23
  log.debug(message)
8
24
  end
9
25
 
10
26
  def info(message = nil, log = @log)
27
+ return unless log.level < 2
28
+
11
29
  message = yield if message.nil? && block_given?
12
30
  message = Rainbow(message).green if @color
13
31
  log.info(message)
14
32
  end
15
33
 
16
34
  def warn(message = nil, log = @log)
35
+ return unless log.level < 3
36
+
17
37
  message = yield if message.nil? && block_given?
18
38
  message = Rainbow(message).yellow if @color
19
39
  log.warn(message)
20
40
  end
21
41
 
22
42
  def error(message = nil, log = @log)
43
+ return unless log.level < 4
44
+
23
45
  message = yield if message.nil? && block_given?
24
46
  message = Rainbow(message).red if @color
25
47
  log.error(message)
26
48
  end
27
49
 
28
50
  def fatal(message = nil, log = @log)
51
+ return unless log.level < 5
52
+
29
53
  message = yield if message.nil? && block_given?
30
54
  message = Rainbow(message).darkred if @color
31
55
  log.fatal(message)
@@ -36,6 +60,21 @@ module Legion
36
60
  message = Rainbow(message).purple if @color
37
61
  log.unknown(message)
38
62
  end
63
+
64
+ def runner_exception(exc, **opts)
65
+ Legion::Logging.error exc.message
66
+ Legion::Logging.error exc.backtrace
67
+ Legion::Logging.error opts
68
+ { success: false, message: exc.message, backtrace: exc.backtrace }.merge(opts)
69
+ end
70
+
71
+ def thread(kvl: false, **_opts)
72
+ if kvl
73
+ "thread=#{Thread.current.object_id}"
74
+ else
75
+ Thread.current.object_id.to_s
76
+ end
77
+ end
39
78
  end
40
79
  end
41
80
  end
@@ -1,5 +1,5 @@
1
1
  module Legion
2
2
  module Logging
3
- VERSION = '0.1.3'.freeze
3
+ VERSION = '1.1.0'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,12 @@
1
+ sonar.projectKey=legion-io_legion-logging
2
+ sonar.organization=legion-io
3
+ sonar.projectName=Legion::Logging
4
+ sonar.sources=.
5
+ sonar.exclusions=vendor/**
6
+ sonar.coverage.exclusions=spec/**
7
+ sonar.ruby.coverage.reportPath=coverage/.resultset.json
8
+ sonar.ruby.file.suffixes=rb,ruby
9
+ sonar.ruby.coverage.framework=RSpec
10
+ sonar.ruby.rubocopConfig=.rubocop.yml
11
+ sonar.ruby.rubocop.reportPath=rubocop-result.json
12
+ sonar.ruby.rubocop.filePath=.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
9
- bindir: exe
8
+ autorequire:
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-17 00:00:00.000000000 Z
11
+ date: 2020-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec_junit_formatter
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: simplecov
98
+ name: rubocop-performance
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,19 +109,19 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: logger
112
+ name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - "<"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.3'
118
- type: :runtime
117
+ version: 0.18.0
118
+ type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - "<"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.3'
124
+ version: 0.18.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rainbow
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -145,9 +145,16 @@ extra_rdoc_files: []
145
145
  files:
146
146
  - ".circleci/config.yml"
147
147
  - ".gitignore"
148
+ - ".idea/.rakeTasks"
149
+ - ".idea/legion-logging.iml"
150
+ - ".idea/misc.xml"
151
+ - ".idea/modules.xml"
152
+ - ".idea/vagrant.xml"
153
+ - ".idea/workspace.xml"
148
154
  - ".rubocop.yml"
149
155
  - CHANGELOG.md
150
156
  - Gemfile
157
+ - Gemfile.lock
151
158
  - README.md
152
159
  - Rakefile
153
160
  - bitbucket-pipelines.yml
@@ -157,6 +164,7 @@ files:
157
164
  - lib/legion/logging/logger.rb
158
165
  - lib/legion/logging/methods.rb
159
166
  - lib/legion/logging/version.rb
167
+ - sonar-project.properties
160
168
  homepage: https://bitbucket.org/legion-io/legion-logging
161
169
  licenses: []
162
170
  metadata:
@@ -166,7 +174,7 @@ metadata:
166
174
  homepage_uri: https://bitbucket.org/legion-io/legion-logging
167
175
  source_code_uri: https://bitbucket.org/legion-io/legion-logging
168
176
  wiki_uri: https://bitbucket.org/legion-io/legion-logging/wiki/Home
169
- post_install_message:
177
+ post_install_message:
170
178
  rdoc_options: []
171
179
  require_paths:
172
180
  - lib
@@ -181,8 +189,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
189
  - !ruby/object:Gem::Version
182
190
  version: '0'
183
191
  requirements: []
184
- rubygems_version: 3.0.3
185
- signing_key:
192
+ rubygems_version: 3.1.2
193
+ signing_key:
186
194
  specification_version: 4
187
195
  summary: The Legion::Logging class
188
196
  test_files: []