loggerx 0.3.0 → 0.3.2
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 +4 -4
- data/.rubocop.yml +73 -22
- data/.tool-versions +1 -1
- data/Rakefile +2 -2
- data/lib/loggerx/loggerx.rb +29 -36
- data/lib/loggerx/loggerxcm.rb +79 -30
- data/lib/loggerx/version.rb +1 -1
- data/lib/loggerx.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b94fc11a31ed8efbf76e939a7765325fc226339bdea71edb61c026a16f2dad67
|
4
|
+
data.tar.gz: 48b1a9cca11d4610bdfc1146d5a83076827e8be5b045e3d9c7501b39608734e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73b6239ea4cbc60897f3017a7ed10b56d2a1de0abbb9aa5a21ef58d5217a88dda7444253d7c4e6b472f96d6e5b3064e41addb76eeb6f3d3d669623373714cefa
|
7
|
+
data.tar.gz: 73d856baf3ab5a92e6415bac098bba6915aaf6a789ea136c5d4a11e015cb0f5337baf70d3ce231903f11f8b1e8cbd4845c530f989c931d0afa0ea3f887c59775
|
data/.rubocop.yml
CHANGED
@@ -8,29 +8,80 @@ AllCops:
|
|
8
8
|
NewCops: enable
|
9
9
|
TargetRubyVersion: 3.1
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
DisplayCopNames: true
|
12
|
+
StyleGuideBaseURL: https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md
|
13
|
+
# 結果のsuggest部分を非表示にする
|
14
|
+
SuggestExtensions: false
|
15
|
+
# rubocopの対象外ファイル
|
16
|
+
Exclude:
|
17
|
+
- "Gemfile"
|
18
|
+
- "bin/**/*"
|
19
|
+
- "db/**/*"
|
20
|
+
- "log/**/*"
|
21
|
+
- "tmp/**/*"
|
22
|
+
- "vendor/**/*"
|
23
|
+
- "lib/tasks/auto_annotate_models.rake"
|
24
|
+
- "config/environments/*"
|
25
|
+
- "config/puma.rb"
|
26
|
+
- "root/**/*"
|
27
|
+
- "test_data/**/*"
|
28
|
+
- "test_data_y/**/*"
|
29
|
+
- "test_other/**/*"
|
30
|
+
- "test_output/**/*"
|
31
|
+
- "tmp/**/*"
|
32
|
+
- "pkg/**/*"
|
33
|
+
- "docs/**/*"
|
14
34
|
|
15
|
-
Style/StringLiteralsInInterpolation:
|
16
|
-
Enabled: true
|
17
|
-
EnforcedStyle: double_quotes
|
18
35
|
|
19
|
-
Layout
|
20
|
-
|
36
|
+
Layout:
|
37
|
+
# メソッド名をcamelCase に設定します
|
38
|
+
MethodName:
|
39
|
+
# EnforcedStyle: camelCase
|
40
|
+
EnforcedStyle: snake_case
|
41
|
+
# 一行に 120 文字まで書いても OK とする
|
42
|
+
LineLength:
|
43
|
+
Max: 120
|
21
44
|
|
45
|
+
Style:
|
46
|
+
StringLiterals:
|
47
|
+
Enabled: true
|
48
|
+
EnforcedStyle: double_quotes
|
49
|
+
|
50
|
+
StringLiteralsInInterpolation:
|
51
|
+
Enabled: true
|
52
|
+
EnforcedStyle: double_quotes
|
22
53
|
#追加
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
54
|
+
rozenStringLiteralComment:
|
55
|
+
Enabled: false
|
56
|
+
ClassAndModuleChildren:
|
57
|
+
Enabled: false
|
58
|
+
GuardClause:
|
59
|
+
Enabled: false
|
60
|
+
IfUnlessModifier:
|
61
|
+
Enabled: false
|
62
|
+
# 日本語のコメントを OK とする
|
63
|
+
AsciiComments:
|
64
|
+
Enabled: false
|
65
|
+
BlockComments:
|
66
|
+
Enabled: false
|
67
|
+
|
68
|
+
# class documentation commentのアラートを出さない
|
69
|
+
Documentation:
|
70
|
+
Enabled: false
|
71
|
+
IfWithBooleanLiteralBranches:
|
72
|
+
Enabled: false
|
73
|
+
|
74
|
+
Naming:
|
75
|
+
RescuedExceptionsVariableName:
|
76
|
+
PreferredName: exc
|
77
|
+
|
78
|
+
Lint:
|
79
|
+
DuplicateRegexpCharacterClassElement:
|
80
|
+
Enabled: false
|
81
|
+
|
82
|
+
|
83
|
+
Metrics:
|
84
|
+
ClassLength:
|
85
|
+
# Enabled: false
|
86
|
+
Max: 440 # クラスの最大行数をここで設定
|
87
|
+
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 3.
|
1
|
+
ruby 3.3.4
|
data/Rakefile
CHANGED
data/lib/loggerx/loggerx.rb
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
module Loggerx
|
4
4
|
class Loggerx
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
5
|
+
require 'logger'
|
6
|
+
require 'fileutils'
|
7
|
+
require 'stringio'
|
8
8
|
|
9
9
|
LOG_FILENAME_BASE = "#{Time.now.strftime("%Y%m%d-%H%M%S")}.log".freeze
|
10
10
|
@log_file = nil
|
11
11
|
@log_stdout = nil
|
12
12
|
@stdout_backup = $stdout
|
13
|
-
@stringio = StringIO.new(+
|
13
|
+
@stringio = StringIO.new(+'', 'w+')
|
14
14
|
|
15
15
|
attr_reader :error_count
|
16
16
|
|
@@ -38,14 +38,9 @@ module Loggerx
|
|
38
38
|
fname = nil if fname == false
|
39
39
|
fname = prefix + LOG_FILENAME_BASE if fname == :default
|
40
40
|
@log_file = setup_logger_file(log_dir, fname) if fname
|
41
|
-
|
42
|
-
obj = proc do |_, _, _, msg|
|
43
|
-
"#{msg}\n"
|
44
|
-
end
|
45
41
|
# register_log_format(obj)
|
46
|
-
formatter = obj
|
47
42
|
# register_log_level(level_hs[level])
|
48
|
-
|
43
|
+
level_hs[level]
|
49
44
|
end
|
50
45
|
|
51
46
|
def formatter
|
@@ -81,7 +76,6 @@ module Loggerx
|
|
81
76
|
|
82
77
|
def setup_logger_file(log_dir, fname)
|
83
78
|
filepath = Pathname.new(log_dir).join(fname)
|
84
|
-
log_file = nil
|
85
79
|
begin
|
86
80
|
log ||= ActiveSupport::TaggedLogging.new(filepath)
|
87
81
|
rescue Errno::EACCES
|
@@ -116,7 +110,7 @@ module Loggerx
|
|
116
110
|
def to_string(value)
|
117
111
|
if value.instance_of?(Array)
|
118
112
|
@stdout_backup ||= $stdout
|
119
|
-
@stringio ||= StringIO.new(+
|
113
|
+
@stringio ||= StringIO.new(+'', 'w+')
|
120
114
|
$stdout = @stringio
|
121
115
|
$stdout = @stdout_backup
|
122
116
|
@stringio.rewind
|
@@ -150,7 +144,6 @@ module Loggerx
|
|
150
144
|
|
151
145
|
def debug(value)
|
152
146
|
str = to_string(value)
|
153
|
-
# p str
|
154
147
|
@log_file&.debug(str)
|
155
148
|
@log_stdout&.debug(str)
|
156
149
|
true
|
@@ -188,39 +181,39 @@ module Loggerx
|
|
188
181
|
end
|
189
182
|
|
190
183
|
def hash_to_args(hash)
|
191
|
-
prefix = hash[
|
192
|
-
log_dir_pn = Pathname.new(hash[
|
184
|
+
prefix = hash['prefix']
|
185
|
+
log_dir_pn = Pathname.new(hash['log_dir'])
|
193
186
|
|
194
|
-
stdout_flag_str = hash[
|
187
|
+
stdout_flag_str = hash['stdout_flag']
|
195
188
|
stdout_flag = if stdout_flag_str.instance_of?(String)
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
fname_str = hash[
|
189
|
+
case stdout_flag_str
|
190
|
+
when 'true'
|
191
|
+
true
|
192
|
+
else
|
193
|
+
false
|
194
|
+
end
|
195
|
+
else
|
196
|
+
stdout_flag_str
|
197
|
+
end
|
198
|
+
|
199
|
+
fname_str = hash['fname']
|
207
200
|
fname = case fname_str
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
201
|
+
when 'default'
|
202
|
+
fname_str.to_sym
|
203
|
+
when 'false'
|
204
|
+
false
|
205
|
+
else
|
206
|
+
fname_str
|
207
|
+
end
|
215
208
|
|
216
|
-
level = hash[
|
209
|
+
level = hash['level'].to_sym
|
217
210
|
|
218
211
|
[prefix, fname, log_dir_pn, stdout_flag, level]
|
219
212
|
end
|
220
213
|
|
221
214
|
def create_by_hash(hash)
|
222
215
|
prefix, fname, log_dir_pn, stdout_flag, level = hash_to_args(hash)
|
223
|
-
new(prefix, fname, log_dir_pn, stdout_flag, level)
|
216
|
+
Loggerx.new(prefix, fname, log_dir_pn, stdout_flag, level)
|
224
217
|
end
|
225
218
|
|
226
219
|
def init_by_hash(hash)
|
data/lib/loggerx/loggerxcm.rb
CHANGED
@@ -1,19 +1,35 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'pathname'
|
4
4
|
|
5
5
|
module Loggerx
|
6
|
+
# The `Loggerx::Loggerxcm0` class is designed to provide logging functionality specific to the Mkspec framework.
|
7
|
+
# It encapsulates the logging mechanism, offering a unified interface for recording various levels of messages,
|
8
|
+
# such as debug, info, warning, and error. This class aims to facilitate debugging and tracking of the application's
|
9
|
+
# flow by providing detailed and structured log messages. It can be configured to log messages to different outputs,
|
10
|
+
# including standard output, files, or external logging services, depending on the needs of the framework.
|
11
|
+
#
|
12
|
+
# @example Logging a debug message
|
13
|
+
# Loggerx::Loggerxcm0.debug("This is a debug message")
|
14
|
+
#
|
15
|
+
# @example Logging an error message
|
16
|
+
# Loggerx::Loggerxcm0.error("This is an error message")
|
17
|
+
#
|
18
|
+
# This class may also support log rotation, filtering of log messages based on severity, and formatting of log messages
|
19
|
+
# to include timestamps, source identifiers, and other relevant information.
|
6
20
|
class Loggerxcm0
|
7
|
-
|
8
|
-
require
|
9
|
-
require
|
21
|
+
# Implementation omitted
|
22
|
+
require 'logger'
|
23
|
+
require 'fileutils'
|
24
|
+
require 'stringio'
|
10
25
|
|
11
|
-
LOG_FILENAME_BASE = "#{Time.now.strftime(
|
26
|
+
LOG_FILENAME_BASE = "#{Time.now.strftime('%Y%m%d-%H%M%S')}.log".freeze
|
12
27
|
@log_file = nil
|
13
28
|
@log_stdout = nil
|
14
29
|
@stdout_backup = $stdout
|
15
|
-
@stringio = StringIO.new(+"",
|
16
|
-
|
30
|
+
@stringio = StringIO.new(+"", 'w+')
|
31
|
+
|
32
|
+
@valid = false
|
17
33
|
|
18
34
|
class << self
|
19
35
|
def ensure_quantum_log_files(log_dir_pn, limit_of_num_of_files, prefix)
|
@@ -32,7 +48,7 @@ module Loggerx
|
|
32
48
|
warn: Logger::WARN,
|
33
49
|
error: Logger::ERROR,
|
34
50
|
fatal: Logger::FATAL,
|
35
|
-
unknown: Logger::UNKNOWN
|
51
|
+
unknown: Logger::UNKNOWN
|
36
52
|
}
|
37
53
|
@log_dir_pn = Pathname.new(log_dir)
|
38
54
|
|
@@ -51,10 +67,15 @@ module Loggerx
|
|
51
67
|
end
|
52
68
|
register_log_format(obj)
|
53
69
|
register_log_level(level_hs[level])
|
54
|
-
end
|
55
70
|
|
56
|
-
|
57
|
-
|
71
|
+
@valid = true
|
72
|
+
|
73
|
+
Loggerxcm.fatal("fatal")
|
74
|
+
Loggerxcm.debug("debug")
|
75
|
+
Loggerxcm.info("info")
|
76
|
+
Loggerxcm.warn("warn")
|
77
|
+
Loggerxcm.error("error")
|
78
|
+
# Loggerxcm.unknown("unknown")
|
58
79
|
end
|
59
80
|
|
60
81
|
def setup_logger_stdout(log_stdout)
|
@@ -62,7 +83,8 @@ module Loggerx
|
|
62
83
|
|
63
84
|
begin
|
64
85
|
log_stdout = Logger.new($stdout)
|
65
|
-
rescue StandardError
|
86
|
+
rescue StandardError => exc
|
87
|
+
pust exc.message
|
66
88
|
@error_count += 1
|
67
89
|
end
|
68
90
|
log_stdout
|
@@ -72,10 +94,11 @@ module Loggerx
|
|
72
94
|
filepath = Pathname.new(log_dir).join(fname)
|
73
95
|
if log_file.nil?
|
74
96
|
begin
|
75
|
-
log_file = Logger.new(filepath)
|
97
|
+
log_file = Logger.new(filepath.to_s)
|
76
98
|
rescue Errno::EACCES
|
77
99
|
@error_count += 1
|
78
|
-
rescue StandardError
|
100
|
+
rescue StandardError => exc
|
101
|
+
puts exc
|
79
102
|
@error_count += 1
|
80
103
|
end
|
81
104
|
end
|
@@ -88,6 +111,7 @@ module Loggerx
|
|
88
111
|
end
|
89
112
|
|
90
113
|
def register_log_level(level)
|
114
|
+
puts "============ Loggerxcm.register_log_level level=#{level} ==========="
|
91
115
|
@log_file&.level = level
|
92
116
|
@log_stdout&.level = level
|
93
117
|
#
|
@@ -98,12 +122,12 @@ module Loggerx
|
|
98
122
|
def to_string(value)
|
99
123
|
if value.instance_of?(Array)
|
100
124
|
@stdout_backup ||= $stdout
|
101
|
-
@stringio ||= StringIO.new(+"",
|
125
|
+
@stringio ||= StringIO.new(+"", 'w+')
|
102
126
|
$stdout = @stringio
|
103
|
-
$stdout = @stdout_backup
|
104
127
|
@stringio.rewind
|
105
128
|
str = @stringio.read
|
106
129
|
@stringio.truncate(0)
|
130
|
+
$stdout = @stdout_backup
|
107
131
|
str
|
108
132
|
else
|
109
133
|
value
|
@@ -111,17 +135,27 @@ module Loggerx
|
|
111
135
|
end
|
112
136
|
|
113
137
|
def show(value)
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
138
|
+
if @valid
|
139
|
+
if value.instance_of?(Array)
|
140
|
+
value.map do |v|
|
141
|
+
str = v.to_s
|
142
|
+
Util.puts_valid_str(str)
|
143
|
+
end
|
144
|
+
else
|
145
|
+
Util.puts_valid_str(str)
|
146
|
+
end
|
147
|
+
str = error_sub(value)
|
148
|
+
Util.puts_valid_str(str)
|
149
|
+
end
|
118
150
|
true
|
119
151
|
end
|
120
152
|
|
121
153
|
def error_sub(value)
|
122
154
|
str = to_string(value)
|
123
|
-
@
|
124
|
-
|
155
|
+
if @valid
|
156
|
+
@log_file&.error(str)
|
157
|
+
@log_stdout&.error(str)
|
158
|
+
end
|
125
159
|
str
|
126
160
|
end
|
127
161
|
|
@@ -132,34 +166,49 @@ module Loggerx
|
|
132
166
|
|
133
167
|
def debug(value)
|
134
168
|
str = to_string(value)
|
135
|
-
@
|
136
|
-
|
169
|
+
if @valid
|
170
|
+
@log_file&.debug(str)
|
171
|
+
@log_stdout&.debug(str)
|
172
|
+
end
|
173
|
+
|
137
174
|
true
|
138
175
|
end
|
139
176
|
|
140
177
|
def info(value)
|
141
178
|
str = to_string(value)
|
142
|
-
@
|
143
|
-
|
179
|
+
if @valid
|
180
|
+
@log_file&.info(str)
|
181
|
+
@log_stdout&.info(str)
|
182
|
+
end
|
144
183
|
true
|
145
184
|
end
|
146
185
|
|
147
186
|
def warn(value)
|
148
187
|
str = to_string(value)
|
149
|
-
@
|
150
|
-
|
188
|
+
if @valid
|
189
|
+
@log_file&.warn(str)
|
190
|
+
@log_stdout&.warn(str)
|
191
|
+
end
|
151
192
|
true
|
152
193
|
end
|
153
194
|
|
154
195
|
def fatal(value)
|
155
196
|
str = to_string(value)
|
156
|
-
@
|
157
|
-
|
197
|
+
if @valid
|
198
|
+
@log_file&.fatal(str)
|
199
|
+
@log_stdout&.fatal(str)
|
200
|
+
end
|
158
201
|
true
|
159
202
|
end
|
160
203
|
|
161
204
|
def close
|
205
|
+
retrun unless @valid
|
206
|
+
|
162
207
|
@log_file&.close
|
208
|
+
@log_file = nil
|
209
|
+
@log_stdout = nil
|
210
|
+
|
211
|
+
@valid = false
|
163
212
|
# @log_stdout&.close
|
164
213
|
end
|
165
214
|
end
|
data/lib/loggerx/version.rb
CHANGED
data/lib/loggerx.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
3
|
+
require_relative 'loggerx/version'
|
4
|
+
require_relative 'loggerx/loggerx'
|
5
|
+
require_relative 'loggerx/loggerxcm'
|
6
6
|
|
7
7
|
module Loggerx
|
8
8
|
class Error < StandardError; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loggerx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ykominami
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Utility class for Logging.
|
14
14
|
email:
|
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
57
|
requirements: []
|
58
|
-
rubygems_version: 3.5.
|
58
|
+
rubygems_version: 3.5.11
|
59
59
|
signing_key:
|
60
60
|
specification_version: 4
|
61
61
|
summary: Utility class for Logging.
|