k_log 0.0.11 → 0.0.16
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 +3 -0
- data/k_log.gemspec +1 -1
- data/lib/k_log.rb +19 -4
- data/lib/k_log/examples.rb +120 -0
- data/lib/k_log/log_util.rb +63 -43
- data/lib/k_log/logging.rb +9 -0
- data/lib/k_log/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba63dfa4daf9b11166e15ebd5b0f0204a1ff4886c9431a252e1ff93a5c2ce343
|
4
|
+
data.tar.gz: f4ede795aeca562e9ab6ab91329fcd9bc4657fc7e9ad3338bf748d15c24e1af6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01dd4e8a183ec4aaa3511cd2787f65dcef0cf36ac20b6bf1159a8e920206776f7af2fed28bfd7aa59c8cf83f8d831c63be3040133f2c885f3e56483340f7e05f
|
7
|
+
data.tar.gz: 8aa357235342a2ce4a41d0aa37ee753d3dd5abcfc7ce50b890f958fdc3ad965949ddaf85c89f0e2c2bee3eec55aaa9c6074ee5843a2394acf3f0ba1c6d58400a
|
data/.rubocop.yml
CHANGED
data/k_log.gemspec
CHANGED
@@ -38,6 +38,6 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.require_paths = ['lib']
|
39
39
|
# spec.extensions = ['ext/k_log/extconf.rb']
|
40
40
|
|
41
|
-
spec.add_dependency 'table_print',
|
41
|
+
spec.add_dependency 'table_print', '~> 1.5.7'
|
42
42
|
# spec.add_dependency 'tty-box', '~> 0.5.0'
|
43
43
|
end
|
data/lib/k_log.rb
CHANGED
@@ -6,6 +6,7 @@ require 'k_log/version'
|
|
6
6
|
require 'k_log/log_formatter'
|
7
7
|
require 'k_log/log_helper'
|
8
8
|
require 'k_log/log_util'
|
9
|
+
require 'k_log/logging'
|
9
10
|
|
10
11
|
# Simple console log helpers
|
11
12
|
module KLog
|
@@ -14,11 +15,25 @@ module KLog
|
|
14
15
|
|
15
16
|
class << self
|
16
17
|
attr_accessor :logger
|
18
|
+
|
19
|
+
def default_logger
|
20
|
+
return @default_logger if defined? @default_logger
|
21
|
+
|
22
|
+
@default_logger = begin
|
23
|
+
logger = Logger.new($stdout)
|
24
|
+
logger.level = Logger::DEBUG
|
25
|
+
logger.formatter = KLog::LogFormatter.new
|
26
|
+
KLog::LogUtil.new(logger)
|
27
|
+
end
|
28
|
+
end
|
17
29
|
end
|
18
30
|
end
|
19
31
|
|
20
|
-
|
21
|
-
# KLog.logger.level = Logger::DEBUG
|
22
|
-
# KLog.logger.formatter = KLog::LogFormatter.new
|
32
|
+
KLog.logger = KLog.default_logger
|
23
33
|
|
24
|
-
|
34
|
+
if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
|
35
|
+
namespace = 'KLog::Version'
|
36
|
+
file_path = $LOADED_FEATURES.find { |f| f.include?('k_log/version') }
|
37
|
+
version = KLog::VERSION.ljust(9)
|
38
|
+
puts "#{namespace.ljust(40)} : #{version.ljust(9)} : #{file_path}"
|
39
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KLog
|
4
|
+
class Examples
|
5
|
+
include KLog::Logging
|
6
|
+
|
7
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
8
|
+
def examples
|
9
|
+
examples_simple
|
10
|
+
examples_complex
|
11
|
+
end
|
12
|
+
|
13
|
+
def examples_simple
|
14
|
+
log.debug 'some debug message'
|
15
|
+
log.info 'some info message'
|
16
|
+
log.warn 'some warning message'
|
17
|
+
log.error 'some error message'
|
18
|
+
log.fatal 'some fatal message'
|
19
|
+
|
20
|
+
log.kv('First Name', 'David')
|
21
|
+
log.kv('Last Name', 'Cruwys')
|
22
|
+
log.kv('Age', 45)
|
23
|
+
log.kv('Sex', 'male')
|
24
|
+
|
25
|
+
log.heading('Heading')
|
26
|
+
log.subheading('Sub Heading')
|
27
|
+
log.section_heading('Section Heading')
|
28
|
+
end
|
29
|
+
|
30
|
+
def examples_complex
|
31
|
+
log.block ['Line 1', 12, 'Line 3', true, 'Line 5']
|
32
|
+
|
33
|
+
log.progress(0, 'Section 1')
|
34
|
+
log.progress
|
35
|
+
log.progress
|
36
|
+
save_progress = log.progress
|
37
|
+
|
38
|
+
log.progress(10, 'Section 2')
|
39
|
+
log.progress
|
40
|
+
log.progress
|
41
|
+
log.progress
|
42
|
+
|
43
|
+
log.progress(save_progress, 'Section 1')
|
44
|
+
log.progress
|
45
|
+
log.progress
|
46
|
+
log.progress
|
47
|
+
|
48
|
+
log.line
|
49
|
+
log.line(20)
|
50
|
+
log.line(20, character: '-')
|
51
|
+
|
52
|
+
yaml1 = {}
|
53
|
+
yaml1['title'] = 'Software Architect'
|
54
|
+
yaml1['age'] = 45
|
55
|
+
yaml1['name'] = 'David'
|
56
|
+
|
57
|
+
yaml3 = {}
|
58
|
+
yaml3['title'] = 'Developer'
|
59
|
+
yaml3['age'] = 20
|
60
|
+
yaml3['name'] = 'Jin'
|
61
|
+
|
62
|
+
log.yaml(yaml1)
|
63
|
+
|
64
|
+
yaml2 = OpenStruct.new
|
65
|
+
yaml2.title = 'Software Architect'
|
66
|
+
yaml2.age = 45
|
67
|
+
yaml2.name = 'David'
|
68
|
+
|
69
|
+
log.yaml(yaml2)
|
70
|
+
|
71
|
+
mixed_yaml_array = [yaml1, yaml2]
|
72
|
+
|
73
|
+
# This fails because we don't correctly pre-process the array
|
74
|
+
log.yaml(mixed_yaml_array)
|
75
|
+
|
76
|
+
hash_yaml_array = [yaml1, yaml3]
|
77
|
+
|
78
|
+
log.yaml(hash_yaml_array)
|
79
|
+
|
80
|
+
begin
|
81
|
+
raise 'Here is an error'
|
82
|
+
rescue StandardError => e
|
83
|
+
log.exception(e)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
87
|
+
|
88
|
+
private
|
89
|
+
|
90
|
+
def debug_multi_lines(lines)
|
91
|
+
lines.each do |line|
|
92
|
+
debug(line)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def info_multi_lines(lines)
|
97
|
+
lines.each do |line|
|
98
|
+
info(line)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def warn_multi_lines(lines)
|
103
|
+
lines.each do |line|
|
104
|
+
warn(line)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def error_multi_lines(lines)
|
109
|
+
lines.each do |line|
|
110
|
+
error(line)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def fatal_multi_lines(lines)
|
115
|
+
lines.each do |line|
|
116
|
+
fatal(line)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
data/lib/k_log/log_util.rb
CHANGED
@@ -100,8 +100,8 @@ module KLog
|
|
100
100
|
|
101
101
|
# # :sql_array should be an array with SQL and values or with SQL and Hash
|
102
102
|
# # example:
|
103
|
-
# #
|
104
|
-
# #
|
103
|
+
# # KLog.logger.sql(["name = :name and group_id = :value OR parent_id = :value", name: "foo'bar", value: 4])
|
104
|
+
# # KLog.logger.sql([sql_exact_match_skills_in_use, {names: self.segments_container.segment_values}])
|
105
105
|
# def sql(sql_array)
|
106
106
|
# value = ActiveRecord::Base.send(:sanitize_sql_array, sql_array)
|
107
107
|
|
@@ -136,12 +136,12 @@ module KLog
|
|
136
136
|
case value
|
137
137
|
when OpenStruct
|
138
138
|
if value['rows'].is_a?(Array)
|
139
|
-
#
|
139
|
+
# KLog.logger.subheading(key)
|
140
140
|
opts[:subheading] = key
|
141
141
|
open_struct(value, indent, **opts)
|
142
142
|
opts.delete(:subheading)
|
143
143
|
else
|
144
|
-
|
144
|
+
KLog.logger.kv "#{indent}#{key}", ''
|
145
145
|
indent = "#{indent} "
|
146
146
|
open_struct(value, indent, **opts)
|
147
147
|
indent = indent.chomp(' ')
|
@@ -149,18 +149,17 @@ module KLog
|
|
149
149
|
when Array
|
150
150
|
next unless opts[:skip_array].nil?
|
151
151
|
|
152
|
-
|
153
|
-
puts LogHelper.subheading(opts[:subheading], 88) unless opts[:subheading].nil?
|
152
|
+
puts LogHelper.section_heading(opts[:subheading], 88) unless opts[:subheading].nil?
|
154
153
|
|
155
154
|
if value.length.positive?
|
156
155
|
if value.first.is_a?(String)
|
157
|
-
|
156
|
+
KLog.logger.kv "#{indent}#{key}", value.join(', ')
|
158
157
|
else
|
159
158
|
tp value, value.first.to_h.keys
|
160
159
|
end
|
161
160
|
end
|
162
161
|
else
|
163
|
-
|
162
|
+
KLog.logger.kv "#{indent}#{key}", value
|
164
163
|
end
|
165
164
|
end
|
166
165
|
nil
|
@@ -234,6 +233,27 @@ module KLog
|
|
234
233
|
end
|
235
234
|
end
|
236
235
|
|
236
|
+
def visual_compare_hashes(hash1, hash2)
|
237
|
+
content1 = JSON.pretty_generate(hash1)
|
238
|
+
content2 = JSON.pretty_generate(hash2)
|
239
|
+
|
240
|
+
file1 = Tempfile.new('hash1')
|
241
|
+
file1.write(content1)
|
242
|
+
file1.close
|
243
|
+
|
244
|
+
file2 = Tempfile.new('hash2')
|
245
|
+
file2.write(content2)
|
246
|
+
file2.close
|
247
|
+
|
248
|
+
system "code --diff #{file1.path} #{file2.path}"
|
249
|
+
|
250
|
+
# Provide enough time for vscode to open and display the files before deleting them
|
251
|
+
sleep 1
|
252
|
+
|
253
|
+
file1.unlink
|
254
|
+
file2.unlink
|
255
|
+
end
|
256
|
+
|
237
257
|
#----------------------------------------------------------------------------------------------------
|
238
258
|
# Internal Methods
|
239
259
|
#----------------------------------------------------------------------------------------------------
|
@@ -245,43 +265,43 @@ module KLog
|
|
245
265
|
end
|
246
266
|
|
247
267
|
def self.examples_simple
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
268
|
+
KLog.logger.debug 'some debug message'
|
269
|
+
KLog.logger.info 'some info message'
|
270
|
+
KLog.logger.warn 'some warning message'
|
271
|
+
KLog.logger.error 'some error message'
|
272
|
+
KLog.logger.fatal 'some fatal message'
|
273
|
+
|
274
|
+
KLog.logger.kv('First Name', 'David')
|
275
|
+
KLog.logger.kv('Last Name', 'Cruwys')
|
276
|
+
KLog.logger.kv('Age', 45)
|
277
|
+
KLog.logger.kv('Sex', 'male')
|
278
|
+
|
279
|
+
KLog.logger.heading('Heading')
|
280
|
+
KLog.logger.subheading('Sub Heading')
|
281
|
+
KLog.logger.section_heading('Section Heading')
|
262
282
|
end
|
263
283
|
|
264
284
|
def self.examples_complex
|
265
|
-
|
285
|
+
KLog.logger.block ['Line 1', 12, 'Line 3', true, 'Line 5']
|
266
286
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
save_progress =
|
287
|
+
KLog.logger.progress(0, 'Section 1')
|
288
|
+
KLog.logger.progress
|
289
|
+
KLog.logger.progress
|
290
|
+
save_progress = KLog.logger.progress
|
271
291
|
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
292
|
+
KLog.logger.progress(10, 'Section 2')
|
293
|
+
KLog.logger.progress
|
294
|
+
KLog.logger.progress
|
295
|
+
KLog.logger.progress
|
276
296
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
297
|
+
KLog.logger.progress(save_progress, 'Section 1')
|
298
|
+
KLog.logger.progress
|
299
|
+
KLog.logger.progress
|
300
|
+
KLog.logger.progress
|
281
301
|
|
282
|
-
|
283
|
-
|
284
|
-
|
302
|
+
KLog.logger.line
|
303
|
+
KLog.logger.line(20)
|
304
|
+
KLog.logger.line(20, character: '-')
|
285
305
|
|
286
306
|
yaml1 = {}
|
287
307
|
yaml1['title'] = 'Software Architect'
|
@@ -293,28 +313,28 @@ module KLog
|
|
293
313
|
yaml3['age'] = 20
|
294
314
|
yaml3['name'] = 'Jin'
|
295
315
|
|
296
|
-
|
316
|
+
KLog.logger.yaml(yaml1)
|
297
317
|
|
298
318
|
yaml2 = OpenStruct.new
|
299
319
|
yaml2.title = 'Software Architect'
|
300
320
|
yaml2.age = 45
|
301
321
|
yaml2.name = 'David'
|
302
322
|
|
303
|
-
|
323
|
+
KLog.logger.yaml(yaml2)
|
304
324
|
|
305
325
|
mixed_yaml_array = [yaml1, yaml2]
|
306
326
|
|
307
327
|
# This fails because we don't correctly pre-process the array
|
308
|
-
|
328
|
+
KLog.logger.yaml(mixed_yaml_array)
|
309
329
|
|
310
330
|
hash_yaml_array = [yaml1, yaml3]
|
311
331
|
|
312
|
-
|
332
|
+
KLog.logger.yaml(hash_yaml_array)
|
313
333
|
|
314
334
|
begin
|
315
335
|
raise 'Here is an error'
|
316
336
|
rescue StandardError => e
|
317
|
-
|
337
|
+
KLog.logger.exception(e)
|
318
338
|
end
|
319
339
|
end
|
320
340
|
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
data/lib/k_log/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: table_print
|
@@ -52,9 +52,11 @@ files:
|
|
52
52
|
- hooks/update-version
|
53
53
|
- k_log.gemspec
|
54
54
|
- lib/k_log.rb
|
55
|
+
- lib/k_log/examples.rb
|
55
56
|
- lib/k_log/log_formatter.rb
|
56
57
|
- lib/k_log/log_helper.rb
|
57
58
|
- lib/k_log/log_util.rb
|
59
|
+
- lib/k_log/logging.rb
|
58
60
|
- lib/k_log/version.rb
|
59
61
|
- usage.png
|
60
62
|
homepage: http://appydave.com/gems/k-log
|