singlogger 0.0.1
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 +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +32 -0
- data/README.md +51 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/singlogger.rb +55 -0
- data/singlogger.gemspec +28 -0
- metadata +111 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f8045d7390151924e109e664a844ff94598b2fd3245526258697c6410426d7d0
|
4
|
+
data.tar.gz: 56b6e456e38d4816c306bec439d8dd826a09309f41b95297c271dd0333733843
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 38ce691d8b27911ad97591d64bb1a80ab9980bc0d0fd1dd4741093e18059786e6f8311c5582d5e52af37e234252c230e9b9d68753d4abd61f8cb3bd0ee9e1d7a
|
7
|
+
data.tar.gz: 8ee554c571b7ef12dac135a3e0827f4198c225cd8ca25cf4df88b698959cc45e332fadf7727b8b053a6140882917ce3b3f07c906373ee1d2dec5963079448cbe
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
singlogger (0.0.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
docile (1.1.5)
|
10
|
+
json (2.1.0)
|
11
|
+
power_assert (1.1.3)
|
12
|
+
rake (10.5.0)
|
13
|
+
simplecov (0.14.1)
|
14
|
+
docile (~> 1.1.0)
|
15
|
+
json (>= 1.8, < 3)
|
16
|
+
simplecov-html (~> 0.10.0)
|
17
|
+
simplecov-html (0.10.2)
|
18
|
+
test-unit (3.2.8)
|
19
|
+
power_assert
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
bundler (~> 1.16)
|
26
|
+
rake (~> 10.0)
|
27
|
+
simplecov (~> 0.14.1)
|
28
|
+
singlogger!
|
29
|
+
test-unit (~> 3.2.8)
|
30
|
+
|
31
|
+
BUNDLED WITH
|
32
|
+
1.16.1
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# SingLogger
|
2
|
+
|
3
|
+
This is a simple singleton wrapper around the Logger class.
|
4
|
+
|
5
|
+
I'm sure others have done this, but I found myself copying and pasting this
|
6
|
+
wrapper into every project I write, so I thought it made sense to put it into a
|
7
|
+
single gem that I can import wherever I want!
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem 'singlogger'
|
15
|
+
```
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install singlogger
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
I generally start by using `SingLogger.set_level_from_string()` when the
|
28
|
+
application runs, based on a user parameter. You can use
|
29
|
+
`SingLogger.set_level_from_string()` or `SingLogger.set_level()` any time you
|
30
|
+
want to change it. `set_level()` takes logger constants, such as
|
31
|
+
`::Logger::DEBUG`, `::Logger::INFO`, etc.
|
32
|
+
|
33
|
+
If you don't want to use STDERR for the sink, it's important to set the `sink:`
|
34
|
+
parameter of `SingLogger.instance()` the first time you use it. That'll set the
|
35
|
+
sink of the logger going forward.
|
36
|
+
|
37
|
+
To actually log, in the `initialize()` function of your classes, add
|
38
|
+
|
39
|
+
@logger = SingLogger.instance()
|
40
|
+
|
41
|
+
Then when you want to log:
|
42
|
+
|
43
|
+
@logger.debug("debug message")
|
44
|
+
@logger.info("info message")
|
45
|
+
@logger.warn("warn message")
|
46
|
+
@logger.error("error message")
|
47
|
+
@logger.fatal("fatal message")
|
48
|
+
|
49
|
+
## Contributing
|
50
|
+
|
51
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/iagox86/singlogger.
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "singlogger"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/lib/singlogger.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
##
|
2
|
+
# singlogger.rb
|
3
|
+
# By Ron
|
4
|
+
# 2018-01
|
5
|
+
#
|
6
|
+
# This is a simple wrapper around the ruby Logger class to make it a singleton
|
7
|
+
# (since it's a little weird to create new instances all over the place)
|
8
|
+
##
|
9
|
+
|
10
|
+
require 'logger'
|
11
|
+
|
12
|
+
class SingLogger < ::Logger
|
13
|
+
VERSION = "0.0.1"
|
14
|
+
|
15
|
+
@@instance = nil
|
16
|
+
|
17
|
+
private
|
18
|
+
def initialize(level:, sink:)
|
19
|
+
super(sink)
|
20
|
+
@level = level
|
21
|
+
end
|
22
|
+
|
23
|
+
public
|
24
|
+
def self.instance(level: nil, sink: ::STDERR)
|
25
|
+
if(@@instance)
|
26
|
+
if(level)
|
27
|
+
@@instance.level = level
|
28
|
+
end
|
29
|
+
return @@instance
|
30
|
+
end
|
31
|
+
|
32
|
+
@@instance = SingLogger.new(level: (level || ::Logger::INFO), sink: sink)
|
33
|
+
return @@instance
|
34
|
+
end
|
35
|
+
|
36
|
+
public
|
37
|
+
def self.set_level(level:)
|
38
|
+
self.instance(level: level)
|
39
|
+
end
|
40
|
+
|
41
|
+
public
|
42
|
+
def self.set_level_from_string(level:)
|
43
|
+
|
44
|
+
self.set_level(level: ::Logger::DEBUG)
|
45
|
+
if(level =~ /info/i)
|
46
|
+
self.set_level(level: ::Logger::INFO)
|
47
|
+
elsif(level =~ /warn/i)
|
48
|
+
self.set_level(level: ::Logger::WARN)
|
49
|
+
elsif(level =~ /error/i)
|
50
|
+
self.set_level(level: ::Logger::ERROR)
|
51
|
+
elsif(level =~ /fatal/i)
|
52
|
+
self.set_level(level: ::Logger::FATAL)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/singlogger.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "singlogger"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "singlogger"
|
8
|
+
spec.version = SingLogger::VERSION
|
9
|
+
spec.authors = ["iagox86"]
|
10
|
+
spec.email = ["ron-git@skullsecurity.org"]
|
11
|
+
spec.license = '0BSD'
|
12
|
+
|
13
|
+
spec.summary = "Singleton wrapper around Logger"
|
14
|
+
spec.description = "A simple Singleton wrapper around the ruby Logger class, gem-ified it because I found myself using it in several different projects"
|
15
|
+
spec.homepage = "https://github.com/iagox86/singlogger"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
|
+
f.match(%r{^(test|spec|features)/})
|
19
|
+
end
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
26
|
+
spec.add_development_dependency "test-unit", "~> 3.2"
|
27
|
+
spec.add_development_dependency "simplecov", "~> 0.14.1"
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: singlogger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- iagox86
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-07-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: test-unit
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.2'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.14.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.14.1
|
69
|
+
description: A simple Singleton wrapper around the ruby Logger class, gem-ified it
|
70
|
+
because I found myself using it in several different projects
|
71
|
+
email:
|
72
|
+
- ron-git@skullsecurity.org
|
73
|
+
executables: []
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
79
|
+
- Gemfile
|
80
|
+
- Gemfile.lock
|
81
|
+
- README.md
|
82
|
+
- Rakefile
|
83
|
+
- bin/console
|
84
|
+
- bin/setup
|
85
|
+
- lib/singlogger.rb
|
86
|
+
- singlogger.gemspec
|
87
|
+
homepage: https://github.com/iagox86/singlogger
|
88
|
+
licenses:
|
89
|
+
- 0BSD
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
requirements: []
|
106
|
+
rubyforge_project:
|
107
|
+
rubygems_version: 2.7.3
|
108
|
+
signing_key:
|
109
|
+
specification_version: 4
|
110
|
+
summary: Singleton wrapper around Logger
|
111
|
+
test_files: []
|