tee_logger 3.2.0 → 3.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a90d6ef3ba88bed38455955c9e7e0654440d9e80
4
- data.tar.gz: d99ccca31c41af678fe5111be644decb3e783a4c
3
+ metadata.gz: 9698a06d0147a9728b46a704c455ac4bbb72b0ee
4
+ data.tar.gz: 909f2f8b60a04dc98fa19bad8085650f9bd2a0ea
5
5
  SHA512:
6
- metadata.gz: fcc81f3c5491f42351e90abb301bfc8821238fc237a843f483e29b42f5500464b1682569285bc943db7ba441ce80449e127380dfcf29ad89f881f18be3e6c974
7
- data.tar.gz: c6a2a450f5284eea3b19ddd5e71292b1816b5337d1dd3343733b5eb9db580d6c58760357ec5b9d49201bdd7222fd49fe55655b4a9c7a74508f4c35b3ac682aa1
6
+ metadata.gz: e9df0fcc964c6f734a52936aacb66650575de2475e4a54805199c6772a41037ad0c4617c3455e85b3a35697f3adac7e7baa6c51e9f2f8b0a8ef9461f3189464c
7
+ data.tar.gz: 1e330f7fa8e445ee507c9604d1dd2b8d7c07dd3294537aed936abdf44c0e495b566bd2df5ada856acf61902ced1768035cb1f8b3b43830db2ad9be35ea1f0c48
data/.travis.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
+ - 2.3.0
4
5
  - 2.2.3
5
6
  - 2.1.7
6
7
  - 2.0.0
data/README.md CHANGED
@@ -47,102 +47,158 @@ $ gem install tee_logger
47
47
 
48
48
  ## Usage
49
49
 
50
+ ### let's logging
50
51
  ```ruby
51
- require 'tee_logger'
52
-
53
- # Logger.new like options(logdev, shift_age, shift_size)
54
- # options default value is
55
- # logdev = './tee_logger.log'
56
- # shift_age = 0
57
- # shift_size = 1_048_576
58
- tl = TeeLogger.new
59
-
60
- # let's logging
61
- tl.debug 'hello'
62
- tl.debug(:progname) { 'hello world' }
63
- tl.progname = 'App'
64
- tl.debug 'hello tee_logger'
65
-
66
- # enable only when specified
67
- tl.info 'this message is console and logfile'
68
- tl.info 'this message is console only', :console
69
- tl.info 'this message is logfile only', :logfile
70
-
71
- # log meassage indent
72
- tl.info 'hello' # => 'hello'
73
- tl.info 'hello', 0 # => 'hello'
74
- tl.info 'hello', 2 # => ' hello'
75
-
76
- # enabling and indent
77
- tl.info 'this message is console only', 2, :console
78
- tl.info 'this message is console only', :console, 2
79
-
80
- # disable console output
81
- tl.disable(:console)
82
- tl.info 'this message is logfile only'
52
+ require 'tee_logger'
53
+
54
+ # Logger.new like options(logdev, shift_age, shift_size)
55
+ # options default value is
56
+ # logdev = './tee_logger.log'
57
+ # shift_age = 0
58
+ # shift_size = 1_048_576
59
+ tl = TeeLogger.new
60
+
61
+ tl.debug 'hello'
62
+ tl.debug(:progname) { 'hello world' }
63
+ tl.progname = 'App'
64
+ tl.debug 'hello tee_logger'
65
+ ```
83
66
 
84
- # enable console output
85
- tl.enable(:console)
86
- tl.info 'this message is logfile and console'
67
+ ### enable only when specified
68
+ ```ruby
69
+ tl.info 'this message is console and logfile'
70
+ tl.info 'this message is console only', :console
71
+ tl.info 'this message is logfile only', :logfile
72
+ ```
87
73
 
88
- # disable logfile output
89
- tl.disable(:logfile)
90
- tl.info 'this message is consle only'
74
+ ### log meassage indent
75
+ ```ruby
76
+ tl.info 'hello' # => 'hello'
77
+ tl.info 'hello', 0 # => 'hello'
78
+ tl.info 'hello', 2 # => ' hello'
79
+ ```
91
80
 
92
- # enable logfile output
93
- tl.enable(:logfile)
94
- tl.info 'this message is logfile and console'
81
+ ### enabling and indent
82
+ ```ruby
83
+ tl.info 'this message is console only', 2, :console
84
+ tl.info 'this message is console only', :console, 2
85
+ ```
95
86
 
96
- # disabe in block
97
- tl.disable(:console) do
98
- tl.info 'this message is logfile only'
99
- end
100
- tl.info 'this message is logfile and console'
87
+ ### disable console output
88
+ ```ruby
89
+ tl.disable(:console)
90
+ tl.info 'this message is logfile only'
91
+ ```
101
92
 
102
- # and others like Logger's
103
- tl.debug? # => true
104
- tl.info? # => true
105
- tl.warn? # => true
106
- tl.error? # => true
107
- tl.fatal? # => true
93
+ ### enable console output
94
+ ```ruby
95
+ tl.enable(:console)
96
+ tl.info 'this message is logfile and console'
97
+ ```
108
98
 
109
- tl.level # => 0
110
- tl.level = Logger::INFO
111
- tl.debug 'this message is not logging'
99
+ ### disable logfile output
100
+ ```ruby
101
+ tl.disable(:logfile)
102
+ tl.info 'this message is consle only'
103
+ ```
112
104
 
113
- tl.formatter # => nil or Proc
114
- tl.formatter =
115
- proc { |severity, datetime, progname, message| "#{severity}:#{message}" }
105
+ ### enable logfile output
106
+ ```ruby
107
+ tl.enable(:logfile)
108
+ tl.info 'this message is logfile and console'
109
+ ```
116
110
 
117
- tl.datetime_format # => nil or Proc
118
- tl.datetime_format = '%Y%m%d %H%M%S '
111
+ ### disable in block
112
+ ```ruby
113
+ tl.disable(:console) do
114
+ tl.info 'this message is logfile only'
115
+ end
116
+ tl.info 'this message is logfile and console'
117
+ ```
118
+
119
+ ### and others like Logger's
120
+ ```ruby
121
+ # log_level
122
+ tl.debug? # => true
123
+ tl.info? # => true
124
+ tl.warn? # => true
125
+ tl.error? # => true
126
+ tl.fatal? # => true
127
+
128
+ tl.level # => 0
129
+ tl.level = Logger::INFO
130
+ tl.debug 'this message is not logging'
131
+
132
+ # formatter
133
+ tl.formatter # => nil or Proc
134
+ tl.formatter =
135
+ proc { |severity, datetime, progname, message| "#{severity}:#{message}" }
136
+
137
+ # datetime_formatter
138
+ tl.datetime_format # => nil or Proc
139
+ tl.datetime_format = '%Y%m%d %H%M%S '
119
140
  ```
120
141
 
121
142
 
122
- ## include or extend TeeLogger for casual use
143
+ ## include or extend TeeLogger
144
+
145
+ > the log file will be in default of `./tee_logger.log`
146
+
147
+ ### for casual use
148
+ ```ruby
149
+ require 'tee_logger'
150
+
151
+ class YourAwesomeClass
152
+ # define method #logger for your class.
153
+ # log file will be in default of `./tee_logger.log`
154
+ include TeeLogger
155
+
156
+ def awesome_method
157
+ logger.info 'this is message is logging and disp console'
158
+ end
159
+ end
160
+
161
+ module YourAwesomeModule
162
+ # define singleton method .logger for your module.
163
+ # log file will be in default of `./tee_logger.log`
164
+ extend TeeLogger
123
165
 
124
- > TODO: the log file will be in default of `./tee_logger.log`
166
+ def self.awesome_method
167
+ logger.info 'this is message is logging and disp console'
168
+ end
169
+ end
170
+ ```
125
171
 
172
+ ### logfile name setting
126
173
  ```ruby
127
- require 'tee_logger'
174
+ require 'tee_logger'
128
175
 
129
- class YourAwesomeClass
130
- include TeeLogger
176
+ # Before extend or include the module, allow the setting of logdev
177
+ # sorry, `TeeLogger.logev` is deprecate.
178
+ # TeeLogger.logdev = 'log1.log'
179
+ TeeLogger.configure do |config|
180
+ config.logdev = 'log1.log'
181
+ end
131
182
 
132
- def awesome_method
133
- # do somthing
134
- logger.info 'this is message is logging and disp console'
135
- end
183
+ class YourAwesomeClass
184
+ include TeeLogger
185
+
186
+ def awesome_method
187
+ logger.info 'this message is output `log1.log`'
136
188
  end
189
+ end
137
190
 
138
- module YourAwesomeModule
139
- extend TeeLogger
191
+ # Before extend or include the module, allow the setting of logdev
192
+ # sorry, `TeeLogger.logev` is deprecate.
193
+ TeeLogger.logdev = 'log2.log'
194
+ module YourAwesomeModule
195
+ extend TeeLogger
140
196
 
141
- def self.awesome_method
142
- # do somthing
143
- logger.info 'this is message is logging and disp console'
144
- end
197
+ def self.awesome_method
198
+ logger.info 'this message is output `log2.log`'
145
199
  end
200
+ end
201
+
146
202
  ```
147
203
 
148
204
 
data/lib/tee_logger.rb CHANGED
@@ -1,42 +1,30 @@
1
+ require 'logger'
1
2
  require 'tee_logger/version'
2
3
  require 'tee_logger/constants'
4
+ require 'tee_logger/configuration'
3
5
  require 'tee_logger/utils'
4
6
  require 'tee_logger/tee_logger_base'
5
- require 'logger'
6
7
 
7
8
  # namespace
8
9
  module TeeLogger
10
+ extend Configration
11
+
9
12
  # shortcut for TeeLogger::TeeLoggerBase.new
10
13
  # @param logdev [String]
11
14
  # @param shift_age [Integer]
12
15
  # @param shift_size [Integer]
13
16
  # @return [TeeLogger::TeeLoggerBase]
14
17
  # @see TeeLoggerBase
15
- def self.new(logdev = DEFAULT_FILE, shift_age = 0, shift_size = 1_048_576)
18
+ def self.new(logdev = nil, shift_age = 0, shift_size = 1_048_576)
16
19
  TeeLoggerBase.new(logdev, shift_age, shift_size)
17
20
  end
18
21
 
19
- @logdev = nil
20
-
21
- # @return [String, File] instance variable @logdev.
22
- def self.logdev
23
- @logdev
24
- end
25
-
26
- # set TeeLogger's class instance variable @logdev.
27
- # extend or include TeeLogger then, @logdev is default argument
28
- # for Logger.new(logdev).
29
- # @param logdev [String, File]
30
- def self.logdev=(logdev)
31
- @logdev = logdev
32
- end
33
-
34
22
  # define singleton method .logger for your module.
35
23
  # and TeeLogger.progname is your module name.
36
24
  def self.extended(mod)
37
25
  mod.define_singleton_method(:logger) do
38
26
  return @logger if @logger
39
- @logger = TeeLoggerBase.new(TeeLogger.logdev || DEFAULT_FILE)
27
+ @logger = TeeLogger.new
40
28
  @logger.progname = mod
41
29
  @logger
42
30
  end
@@ -48,7 +36,7 @@ module TeeLogger
48
36
  klass.class_eval do
49
37
  define_method(:logger) do
50
38
  return @logger if @logger
51
- @logger = TeeLoggerBase.new(TeeLogger.logdev || DEFAULT_FILE)
39
+ @logger = TeeLogger.new
52
40
  @logger.progname = klass.name
53
41
  @logger
54
42
  end
@@ -0,0 +1,40 @@
1
+ # namespace
2
+ module TeeLogger
3
+ # configuration
4
+ module Configration
5
+ Configration = Struct.new(:logdev)
6
+
7
+ # Yields the global configuration to a block.
8
+ # @yield [Configuration] global configuration
9
+ def configure
10
+ yield configuration if block_given?
11
+ end
12
+
13
+ # reset configuration
14
+ def configuration_reset
15
+ @configuration = nil
16
+ end
17
+
18
+ # set TeeLogger::Configuration::Configration's member :logdev.
19
+ # extend or include TeeLogger then, :logdev is default argument
20
+ # for Logger.new(logdev).
21
+ # @param logdev [String, File]
22
+ def logdev=(logdev)
23
+ configuration.logdev = logdev
24
+ end
25
+
26
+ extend Gem::Deprecate
27
+ deprecate :logdev=, 'TeeLogger.configure', 2016, 1
28
+
29
+ # @return [String, File] `configuration.logdev` or `DEFAULT_FILE`.
30
+ def logdev
31
+ configuration.logdev || DEFAULT_FILE
32
+ end
33
+
34
+ private
35
+
36
+ def configuration
37
+ @configuration ||= Configration.new
38
+ end
39
+ end
40
+ end
@@ -43,9 +43,9 @@ module TeeLogger
43
43
  # @param shift_age [Integer]
44
44
  # @param shift_size [Integer]
45
45
  # @see Logger#initialize
46
- def initialize(logdev = DEFAULT_FILE, shift_age = 0, shift_size = 1_048_576)
46
+ def initialize(logdev = nil, shift_age = 0, shift_size = 1_048_576)
47
47
  @console = Logger.new($stdout)
48
- @logfile = Logger.new(logdev, shift_age, shift_size)
48
+ @logfile = Logger.new(logdev || TeeLogger.logdev, shift_age, shift_size)
49
49
 
50
50
  @level, @progname, @formatter, @datetime_format = nil
51
51
  end
@@ -2,8 +2,6 @@
2
2
  module TeeLogger
3
3
  # util
4
4
  module Utils
5
- # module_function
6
-
7
5
  # @param options [Array]
8
6
  # @return [ParsedOption]
9
7
  def extract_options(options)
@@ -1,5 +1,5 @@
1
1
  # namespace
2
2
  module TeeLogger
3
3
  # version number
4
- VERSION = '3.2.0'
4
+ VERSION = '3.2.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tee_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - k-ta-yamada
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-27 00:00:00.000000000 Z
11
+ date: 2016-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -183,6 +183,7 @@ files:
183
183
  - README.md
184
184
  - Rakefile
185
185
  - lib/tee_logger.rb
186
+ - lib/tee_logger/configuration.rb
186
187
  - lib/tee_logger/constants.rb
187
188
  - lib/tee_logger/tee_logger_base.rb
188
189
  - lib/tee_logger/utils.rb
@@ -208,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
209
  version: '0'
209
210
  requirements: []
210
211
  rubyforge_project:
211
- rubygems_version: 2.4.5.1
212
+ rubygems_version: 2.5.1
212
213
  signing_key:
213
214
  specification_version: 4
214
215
  summary: logging to file and standard output.