xlog 0.1.8 → 0.1.9
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/README.md +13 -15
- data/lib/xlog/version.rb +1 -1
- data/lib/xlog/xlogger.rb +19 -10
- data/lib/xlog.rb +8 -8
- 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: 10f05b3e597edaef8153f2a6a39cb8a49db5a57f17eef2f7f4f46b70f8322e50
|
4
|
+
data.tar.gz: 648f2de49e6d459dc70c84eff34e6f121a242d750ab9d69776506de33f5ec12c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93ed87b2fbefff780e977d33c36ea258b379a4c51417d6fc3a66fea0162e9a3952a5e183aea5da29ea1fdd3ad35cc42c1741940f76409e3c19fb538edee083bb
|
7
|
+
data.tar.gz: cd7126e8ff9498dbf5c210866b66a700f0b00221c7a570ff139926655c7617c1f53ca2c2a280bc407b4f55f6b5fa031513002694c236d88ac36fe76d31e70bbd
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Xlog v0.1.
|
1
|
+
# Xlog v0.1.9 - [changelog](https://github.com/coaxsoft/xlog/blob/master/CHANGELOG.md)
|
2
2
|
|
3
3
|
Xlog - awesome logger for your Rails app. Logs everything you need in well-formatted view with timestamp, caller path and tags.
|
4
4
|
|
@@ -6,6 +6,7 @@ Xlog - awesome logger for your Rails app. Logs everything you need in well-forma
|
|
6
6
|
- 2.7.3
|
7
7
|
- 3.0.0
|
8
8
|
- 3.1.1
|
9
|
+
- 3.2.3
|
9
10
|
|
10
11
|
## Usage
|
11
12
|
|
@@ -32,8 +33,8 @@ Xlog has awesome `.error` and `.and_raise_error` methods
|
|
32
33
|
|
33
34
|
```ruby
|
34
35
|
def index
|
35
|
-
10 / 0
|
36
|
-
@orders = Order.all
|
36
|
+
10 / 0
|
37
|
+
@orders = Order.all
|
37
38
|
rescue StandardError => e
|
38
39
|
Xlog.and_raise_error(e, data: { params: params }, message: 'Some message text here')
|
39
40
|
end
|
@@ -42,10 +43,10 @@ end
|
|
42
43
|
...and the output
|
43
44
|
|
44
45
|
```
|
45
|
-
[2019-04-30 11:48:33 UTC] [Admin::OrdersController.index] [error] ZeroDivisionError: divided by 0.
|
46
|
+
[2019-04-30 11:48:33 UTC] [Admin::OrdersController.index] [error] ZeroDivisionError: divided by 0.
|
46
47
|
| Message: Some message text here
|
47
|
-
| Data: {:params=><ActionController::Parameters {"controller"=>"admin/orders", "action"=>"index"} permitted: false>}
|
48
|
-
| Error backtrace:
|
48
|
+
| Data: {:params=><ActionController::Parameters {"controller"=>"admin/orders", "action"=>"index"} permitted: false>}
|
49
|
+
| Error backtrace:
|
49
50
|
| /home/me/test_app/app/controllers/admin/orders_controller.rb:7:in `/'
|
50
51
|
| /home/me/test_app/app/controllers/admin/orders_controller.rb:7:in `index'
|
51
52
|
```
|
@@ -81,18 +82,15 @@ Xlog.warn('Validation failed', tags: %w[validation input_error]) # [2019-04-30 1
|
|
81
82
|
Xlog.warn(error, tags: %w[fatal]) # [2019-04-30 12:29:13 UTC] [ArticlesController.update] [error] [fatal] Message: Zero division error
|
82
83
|
```
|
83
84
|
|
85
|
+
### Custom file prefix
|
84
86
|
|
85
|
-
|
87
|
+
If you need a dedicated log file for a specific service (e.g., a webhooks handler), you can pass a `file_prefix` directly to the log method. The `file_prefix` takes the highest priority, even over any custom logger configuration
|
86
88
|
|
87
89
|
```ruby
|
88
|
-
Xlog.
|
89
|
-
Xlog.info('Some text') # [2019-04-30 12:29:13 UTC] [ArtilesController.show] [info] [custom_tag] Message: Some info text
|
90
|
-
```
|
91
|
-
|
92
|
-
Clear tags with: [DEPRECATED]
|
90
|
+
Xlog.warn('Almost expired API key', tags: 'wise', file_prefix: 'webhooks')
|
93
91
|
|
94
|
-
|
95
|
-
|
92
|
+
# log/xlog_webhooks_development.log
|
93
|
+
[2025-01-01 12:29:13 UTC] [WebhooksController.process] [warn] [wise] Message: Almost expired API key
|
96
94
|
```
|
97
95
|
|
98
96
|
## Middleware
|
@@ -167,4 +165,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
167
165
|
Everyone interacting in the Xlog project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/coaxsoft/xlog/blob/master/CODE_OF_CONDUCT.md).
|
168
166
|
|
169
167
|
## Idea
|
170
|
-
Initially designed and created by [Orest Falchuk (OrestF)](https://github.com/OrestF)
|
168
|
+
Initially designed and created by [Orest Falchuk (OrestF)](https://github.com/OrestF)
|
data/lib/xlog/version.rb
CHANGED
data/lib/xlog/xlogger.rb
CHANGED
@@ -14,27 +14,28 @@ module Xlog
|
|
14
14
|
@folder_names_to_remove = Dir.glob('app/*').map { |f| f.gsub('app/', '') }
|
15
15
|
end
|
16
16
|
|
17
|
-
def log(type, text, tags)
|
17
|
+
def log(type, text, tags, file_prefix: nil)
|
18
|
+
logger = logger_for(file_prefix)
|
18
19
|
tags = [time_stamp, called_from(type), type] + Array.wrap(tags)
|
19
|
-
|
20
|
+
logger.tagged(tags.compact) { logger.send(type, text) }
|
20
21
|
end
|
21
22
|
|
22
|
-
def info(message, data, tags)
|
23
|
-
log(:info, compose_log(message, data), tags)
|
23
|
+
def info(message, data, tags, file_prefix: nil)
|
24
|
+
log(:info, compose_log(message, data), tags, file_prefix: file_prefix)
|
24
25
|
end
|
25
26
|
|
26
|
-
def warn(message, data, tags)
|
27
|
-
log(:warn, compose_log(message, data), tags)
|
27
|
+
def warn(message, data, tags, file_prefix: nil)
|
28
|
+
log(:warn, compose_log(message, data), tags, file_prefix: file_prefix)
|
28
29
|
end
|
29
30
|
|
30
31
|
# do NOT refactor error and and_raise_error
|
31
|
-
def error(e, message, data, tags)
|
32
|
+
def error(e, message, data, tags, file_prefix: nil)
|
32
33
|
# they MUST BE NOT DRY in order to log correct backtrace
|
33
|
-
log(:error, "#{e.class}: #{e.try(:message)}. \n #{compose_log(message, data)} \n Error backtrace: \n#{backtrace(e)}", tags)
|
34
|
+
log(:error, "#{e.class}: #{e.try(:message)}. \n #{compose_log(message, data)} \n Error backtrace: \n#{backtrace(e)}", tags, file_prefix: file_prefix)
|
34
35
|
end
|
35
36
|
|
36
|
-
def and_raise_error(e, message, data, tags)
|
37
|
-
log(:error, "#{e.class}: #{e.try(:message)}. #{newline} #{compose_log(message, data)} #{newline} Error backtrace: #{newline} #{backtrace(e)}", tags)
|
37
|
+
def and_raise_error(e, message, data, tags, file_prefix: nil)
|
38
|
+
log(:error, "#{e.class}: #{e.try(:message)}. #{newline} #{compose_log(message, data)} #{newline} Error backtrace: #{newline} #{backtrace(e)}", tags, file_prefix: file_prefix)
|
38
39
|
message.present? ? raise(e, message) : raise(e)
|
39
40
|
end
|
40
41
|
|
@@ -42,6 +43,14 @@ module Xlog
|
|
42
43
|
@base_logger = ActiveSupport::TaggedLogging.new(logger)
|
43
44
|
end
|
44
45
|
|
46
|
+
def logger_for(file_prefix)
|
47
|
+
return @base_logger if file_prefix.blank?
|
48
|
+
|
49
|
+
ActiveSupport::TaggedLogging.new(
|
50
|
+
Logger.new("log/#{['xlog', file_prefix, Rails.env].compact.join('_')}.log", 'weekly')
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
45
54
|
private
|
46
55
|
|
47
56
|
def newline
|
data/lib/xlog.rb
CHANGED
@@ -21,20 +21,20 @@ module Xlog
|
|
21
21
|
puts "\e[33mWARING: 'clear_tags' is no longer supported as it's not thread safe\e[0m"
|
22
22
|
end
|
23
23
|
|
24
|
-
def info(message, data: nil, tags: [])
|
25
|
-
config.xlogger.info(message, data, tags)
|
24
|
+
def info(message, data: nil, tags: [], file_prefix: nil)
|
25
|
+
config.xlogger.info(message, data, tags, file_prefix: file_prefix)
|
26
26
|
end
|
27
27
|
|
28
|
-
def warn(message, data: nil, tags: [])
|
29
|
-
config.xlogger.warn(message, data, tags)
|
28
|
+
def warn(message, data: nil, tags: [], file_prefix: nil)
|
29
|
+
config.xlogger.warn(message, data, tags, file_prefix: file_prefix)
|
30
30
|
end
|
31
31
|
|
32
|
-
def error(e, message: nil, data: nil, tags: [])
|
33
|
-
config.xlogger.error(e, message, data, tags)
|
32
|
+
def error(e, message: nil, data: nil, tags: [], file_prefix: nil)
|
33
|
+
config.xlogger.error(e, message, data, tags, file_prefix: file_prefix)
|
34
34
|
end
|
35
35
|
|
36
|
-
def and_raise_error(e, message: nil, data: nil, tags: [])
|
37
|
-
config.xlogger.and_raise_error(e, message, data, tags)
|
36
|
+
def and_raise_error(e, message: nil, data: nil, tags: [], file_prefix: nil)
|
37
|
+
config.xlogger.and_raise_error(e, message, data, tags, file_prefix: file_prefix)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xlog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OrestF
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0'
|
134
134
|
requirements: []
|
135
|
-
rubygems_version: 3.
|
135
|
+
rubygems_version: 3.4.19
|
136
136
|
signing_key:
|
137
137
|
specification_version: 4
|
138
138
|
summary: Xlog - awesome logger for your Rails app. Logs everything you need in well-formatted
|