multi_logger 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 +5 -5
- data/CHANGES.md +5 -1
- data/README.md +6 -0
- data/Rakefile +8 -0
- data/lib/multi_logger.rb +16 -15
- data/lib/multi_logger/version.rb +1 -1
- data/lib/railties/lib/rails.rb +7 -0
- data/multi_logger.gemspec +2 -0
- data/spec/helper.rb +21 -0
- data/spec/log/.gitkeep +0 -0
- data/spec/multi_logger_spec.rb +66 -0
- metadata +44 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 53105078b9d403fe26d8adcb8544c7c0c181d0eef00b87412057aab5334c4659
|
4
|
+
data.tar.gz: 386f88badfc3ec2d1bd42237c05784f246e18274627d38584b4d9d0833ee4c49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9d2c806a7b3d5f209c505f959e99dba69006282be0dbe730122676997dc893776f5b6f16e98f1eb49e2c7b5c9779d1977a7e1a7cc7cbf0fd4d64e548d533cd0
|
7
|
+
data.tar.gz: 6c8383fe6ca11389dd45e17e519a9cf38a568b7d98286ddf36aa3aa4911bebffbd5ee92f9171fb6e019b9da83d66400a5de8939d4352132fde319031cddc5716
|
data/CHANGES.md
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
+
## 0.2.0 - 2020/07/14
|
4
|
+
|
5
|
+
* [Enhancement] Accept `STDOUT` as log path - Konstantin
|
6
|
+
|
3
7
|
## 0.1.0 - 2013/09/13
|
4
8
|
|
5
9
|
* [Enhancement] Accept `shift_age` and `shift size` as an argument to the `Logger.new` - Keisuke KITA
|
6
10
|
|
7
11
|
## 0.0.1 - 2013/05/30
|
8
12
|
|
9
|
-
* Initial publication
|
13
|
+
* Initial publication
|
data/README.md
CHANGED
@@ -44,6 +44,12 @@ You can assign formatter to loggers directly, or pass the formatter during setup
|
|
44
44
|
MultiLogger.add_logger('mail', formatter:formatter)
|
45
45
|
MultiLogger.add_logger('user', formatter:formatter)
|
46
46
|
|
47
|
+
To set a different path to the log file, use `:path` option.
|
48
|
+
For example, for setting a different file to each environment use:
|
49
|
+
|
50
|
+
MultiLogger.add_logger('mail', formatter:formatter, path:"mail_#{Rails.env}")
|
51
|
+
|
52
|
+
|
47
53
|
## Contributing
|
48
54
|
|
49
55
|
1. Fork it
|
data/Rakefile
CHANGED
data/lib/multi_logger.rb
CHANGED
@@ -6,24 +6,23 @@ module MultiLogger
|
|
6
6
|
name = name.to_s
|
7
7
|
rails_logger_class = get_rails_logger_class()
|
8
8
|
|
9
|
-
if rails_logger_class.method_defined?(name)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
logger
|
16
|
-
end
|
17
|
-
end
|
18
|
-
if options[:formatter]
|
19
|
-
logger.formatter = options[:formatter]
|
9
|
+
raise "'#{name}' is reserved in #{rails_logger_class} and can not be used as a log accessor name." if rails_logger_class.method_defined?(name)
|
10
|
+
|
11
|
+
logger = Logger.new(*extract_options(name, options))
|
12
|
+
rails_logger_class.class_eval do
|
13
|
+
define_method name.to_sym do
|
14
|
+
logger
|
20
15
|
end
|
21
|
-
logger
|
22
16
|
end
|
17
|
+
|
18
|
+
logger.formatter = options[:formatter] if options[:formatter]
|
19
|
+
logger
|
23
20
|
end
|
24
21
|
|
25
22
|
# Computes log file path
|
26
23
|
def get_path(name, path=nil)
|
24
|
+
return path if path == STDOUT
|
25
|
+
|
27
26
|
if path.nil?
|
28
27
|
path = name.underscore
|
29
28
|
end
|
@@ -47,13 +46,15 @@ module MultiLogger
|
|
47
46
|
end
|
48
47
|
|
49
48
|
def extract_options(name, options)
|
49
|
+
path = get_path(name, options[:path])
|
50
|
+
|
50
51
|
if options[:shift_age] && options[:shift_size]
|
51
|
-
[
|
52
|
+
[path, options[:shift_age], options[:shift_size]]
|
52
53
|
elsif options[:shift_age]
|
53
54
|
# options[:shift_age] => 'daily', 'weekly'
|
54
|
-
[
|
55
|
+
[path, options[:shift_age]]
|
55
56
|
else
|
56
|
-
[
|
57
|
+
[path]
|
57
58
|
end
|
58
59
|
end
|
59
60
|
end
|
data/lib/multi_logger/version.rb
CHANGED
data/multi_logger.gemspec
CHANGED
data/spec/helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'bundler'
|
5
|
+
rescue LoadError => e
|
6
|
+
STDERR.puts e.message
|
7
|
+
STDERR.puts "Run `gem install bundler` to install Bundler."
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
|
11
|
+
begin
|
12
|
+
Bundler.setup(:default, :development, :test)
|
13
|
+
rescue Bundler::BundlerError => e
|
14
|
+
STDERR.puts e.message
|
15
|
+
STDERR.puts "Run `bundle install` to install missing gems."
|
16
|
+
exit e.status_code
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'minitest/autorun'
|
20
|
+
require 'minitest/spec'
|
21
|
+
require "mocha/mini_test"
|
data/spec/log/.gitkeep
ADDED
File without changes
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'multi_logger'
|
3
|
+
|
4
|
+
require 'logger'
|
5
|
+
require 'active_support/core_ext/string'
|
6
|
+
|
7
|
+
# Dummy class to avoid loading Rails
|
8
|
+
module Rails
|
9
|
+
def self.root
|
10
|
+
Pathname.new('./spec/')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe MultiLogger do
|
15
|
+
it 'has version' do
|
16
|
+
MultiLogger.const_get('VERSION').wont_be_empty
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '.add_logger' do
|
20
|
+
it 'raises error if name already in use as method name' do
|
21
|
+
lambda { MultiLogger.add_logger('object_id') }.must_raise RuntimeError
|
22
|
+
end
|
23
|
+
it 'defines a instance method in Rails Logger class linking to custom logger' do
|
24
|
+
rails_logger_klass = Class.new
|
25
|
+
MultiLogger.stubs(:get_rails_logger_class).returns(rails_logger_klass)
|
26
|
+
|
27
|
+
logger = Logger.new('test')
|
28
|
+
Logger.stubs(:new).returns(logger)
|
29
|
+
|
30
|
+
MultiLogger.add_logger('payment').must_equal logger
|
31
|
+
|
32
|
+
rails_logger_klass.new.payment.must_equal logger
|
33
|
+
end
|
34
|
+
it 'assigns formatter to custom logger' do
|
35
|
+
rails_logger_klass = Class.new
|
36
|
+
MultiLogger.stubs(:get_rails_logger_class).returns(rails_logger_klass)
|
37
|
+
|
38
|
+
logger = Logger.new('test')
|
39
|
+
Logger.stubs(:new).returns(logger)
|
40
|
+
|
41
|
+
formatter = mock('formatter')
|
42
|
+
MultiLogger.add_logger('fb',{formatter:formatter}).must_equal logger
|
43
|
+
|
44
|
+
rails_logger_klass.new.fb.must_equal logger
|
45
|
+
logger.formatter.must_equal formatter
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '.get_path' do
|
50
|
+
it '' do
|
51
|
+
MultiLogger.send(:get_path,'parser').to_s.must_equal './spec/log/parser.log'
|
52
|
+
end
|
53
|
+
it 'uses path as file path different to name' do
|
54
|
+
MultiLogger.send(:get_path,'fb','facebook').to_s.must_equal './spec/log/facebook.log'
|
55
|
+
end
|
56
|
+
it 'uses path as file path (relative to Rails root) different to name' do
|
57
|
+
MultiLogger.send(:get_path,'fb','facebook').to_s.must_equal './spec/log/facebook.log'
|
58
|
+
end
|
59
|
+
it 'uses path as file path as is if it contains slash' do
|
60
|
+
MultiLogger.send(:get_path,'fb','./facebook').to_s.must_equal './facebook.log'
|
61
|
+
end
|
62
|
+
it 'does not append .log if path already ends with it' do
|
63
|
+
MultiLogger.send(:get_path,'fb','./facebook.log').to_s.must_equal './facebook.log'
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
metadata
CHANGED
@@ -1,27 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lulalala
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mocha
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
25
53
|
- !ruby/object:Gem::Version
|
26
54
|
version: '0'
|
27
55
|
description: Create multiple loggers in Rails.
|
@@ -31,7 +59,7 @@ executables: []
|
|
31
59
|
extensions: []
|
32
60
|
extra_rdoc_files: []
|
33
61
|
files:
|
34
|
-
- .gitignore
|
62
|
+
- ".gitignore"
|
35
63
|
- CHANGES.md
|
36
64
|
- Gemfile
|
37
65
|
- LICENSE.txt
|
@@ -39,7 +67,11 @@ files:
|
|
39
67
|
- Rakefile
|
40
68
|
- lib/multi_logger.rb
|
41
69
|
- lib/multi_logger/version.rb
|
70
|
+
- lib/railties/lib/rails.rb
|
42
71
|
- multi_logger.gemspec
|
72
|
+
- spec/helper.rb
|
73
|
+
- spec/log/.gitkeep
|
74
|
+
- spec/multi_logger_spec.rb
|
43
75
|
homepage: https://github.com/lulalala/multi_logger
|
44
76
|
licenses: []
|
45
77
|
metadata: {}
|
@@ -49,20 +81,21 @@ require_paths:
|
|
49
81
|
- lib
|
50
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
51
83
|
requirements:
|
52
|
-
- -
|
84
|
+
- - ">="
|
53
85
|
- !ruby/object:Gem::Version
|
54
86
|
version: '0'
|
55
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
88
|
requirements:
|
57
|
-
- -
|
89
|
+
- - ">="
|
58
90
|
- !ruby/object:Gem::Version
|
59
91
|
version: '0'
|
60
92
|
requirements: []
|
61
|
-
|
62
|
-
rubygems_version: 2.0.5
|
93
|
+
rubygems_version: 3.1.3
|
63
94
|
signing_key:
|
64
95
|
specification_version: 4
|
65
96
|
summary: Provide helper to define loggers and access them. Each logger will log into
|
66
97
|
a different file under the log folder.
|
67
|
-
test_files:
|
68
|
-
|
98
|
+
test_files:
|
99
|
+
- spec/helper.rb
|
100
|
+
- spec/log/.gitkeep
|
101
|
+
- spec/multi_logger_spec.rb
|