sherlog-holmes 0.4.0 → 0.4.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 +4 -4
- data/README.md +28 -28
- data/bin/sherlog +1 -1
- data/changelog.md +4 -0
- data/lib/sherlog_holmes/version.rb +1 -1
- data/sherlog-holmes.gemspec +2 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfabfad5c19ca3571ca67c3a4aab466b8018cc0c
|
4
|
+
data.tar.gz: a5a3e6f5657835d46abd367894e565e52be653aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29626eaaaa8f34cc6c40ea9a7942ce361f134db9c96ddf7915c7505a0c8fa88ac513982a45f07e9f06d22c9fe8f65f9fab9af0b670de08a9f5dcc13c4d3a7e96
|
7
|
+
data.tar.gz: 527afcbc462f5b0acf2f77cdadc04a55726f9510308533f8f79101a97c18cbcd19a3fe92ccd946ee52c68f0e76cbcdac7c681792750a08b6c1e4977e46b8d7a4
|
data/README.md
CHANGED
@@ -2,11 +2,19 @@
|
|
2
2
|
|
3
3
|
*Less data containing useful information is way better than lots of data containing a mess.*
|
4
4
|
|
5
|
-
Don't you hate thousands of lines in a log blowing up with your troubleshooting? Lots of useless data that you have to filter just to turn that 300 MB of madness into a 30 KB of useful information
|
5
|
+
Don't you hate those thousands of lines in a log blowing up with your troubleshooting? Lots of useless data that you have to filter just to turn that 300 MB of madness into a 30 KB of useful information? If you need something that can rip off useless entries so you can have a clue about what is going on with that application, you should give Sherlog Holmes a try.
|
6
|
+
|
7
|
+
If you are a log detective, then Sherlog Holmes is your best companion!
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
9
|
-
|
11
|
+
Sherlog can be installed easily through the `gem` command:
|
12
|
+
|
13
|
+
```sh
|
14
|
+
$ gem install sherlog-holmes
|
15
|
+
```
|
16
|
+
|
17
|
+
This is the preferable way since Sherlog is basically a console line application. Of course you can add it to your application's Gemfile:
|
10
18
|
|
11
19
|
```ruby
|
12
20
|
gem 'sherlog_holmes'
|
@@ -14,33 +22,28 @@ gem 'sherlog_holmes'
|
|
14
22
|
|
15
23
|
And then execute:
|
16
24
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
$ gem install sherlog-holmes
|
25
|
+
```sh
|
26
|
+
$ bundle
|
27
|
+
```
|
22
28
|
|
23
|
-
##
|
29
|
+
## How it works
|
24
30
|
|
25
|
-
Sherlog works by grabbing every line of a
|
31
|
+
Sherlog works by grabbing every line of an input and applying a Regular Expression to create an `entry`. This `entry` will be filtered based on a set of given rules and, if it is accepted, will be passed to a set of defined processors so they can do something useful (like printing the output so you can redirect it to a sane log file).
|
26
32
|
|
27
|
-
|
28
|
-
- Level
|
29
|
-
- Category
|
30
|
-
- Origin
|
31
|
-
- Message
|
32
|
-
- Exception
|
33
|
-
- Stacktrace
|
33
|
+
The attributes are based on the named capture groups:
|
34
34
|
|
35
|
-
|
35
|
+
- Time: `time`
|
36
|
+
- Level: `level`
|
37
|
+
- Category: `category`
|
38
|
+
- Origin: `origin`
|
39
|
+
- Message: `message`
|
36
40
|
|
37
41
|
```regexp
|
38
42
|
(<?level>\w+)\s(<?category>\s+)\s(<?message>.+)
|
39
43
|
```
|
44
|
+
*Any other capture group will be assigned to a set of custom attributes and can be used later.*
|
40
45
|
|
41
|
-
|
42
|
-
|
43
|
-
Patterns for exception and stacktrace should be defined separately. The exception pattern is used only in the message field. Here is a complete example of a pattern configuration:
|
46
|
+
Patterns for exception and stacktrace should be defined separately. The exception pattern is used only in the message field and stacktraces. Here is a complete example of a pattern configuration:
|
44
47
|
|
45
48
|
```yaml
|
46
49
|
jboss:
|
@@ -51,10 +54,6 @@ jboss:
|
|
51
54
|
|
52
55
|
The configuration should contain a unique id and at least a pattern for the log **entry**. Place you configuration file in a `*.yml` file inside your `$HOME/.sherlog/patterns` directory and you're ready to go!
|
53
56
|
|
54
|
-
### Custom Attributes
|
55
|
-
|
56
|
-
Sherlog allows you to define custom attributes by using named capture groups. Any capture group name that differs from the main fields will be stored as a custom attribute in the entry object.
|
57
|
-
|
58
57
|
### Configuration Inheritance
|
59
58
|
|
60
59
|
You can create a base configuration and then override some values to create another one. In this case, you need to specify the parent configuration with the `from` key:
|
@@ -84,7 +83,7 @@ This sets the encode to use while reading the log file.
|
|
84
83
|
|
85
84
|
`-t, --type TYPE`
|
86
85
|
|
87
|
-
This will manually set the patterns definitions. If you don't specify this option, Sherlog will try the mapped ones
|
86
|
+
This will manually set the patterns definitions. If you don't specify this option, Sherlog will try to guess the pattern by trying the mapped ones until it finds a match.
|
88
87
|
|
89
88
|
### Filter Options
|
90
89
|
|
@@ -144,7 +143,7 @@ This is equivalent to:
|
|
144
143
|
|
145
144
|
(WARN || ! INFO) && EXCEPTION
|
146
145
|
|
147
|
-
*NOTICE: try not to do fuzzy logics with
|
146
|
+
*NOTICE: try not to do fuzzy logics with those operators*
|
148
147
|
|
149
148
|
### Operation Options
|
150
149
|
|
@@ -167,13 +166,15 @@ Set this and Sherlog will count the number of entries per level, category, origi
|
|
167
166
|
- `levels`: counts the number of entries per level
|
168
167
|
- `categories`: counts the number of entries per category
|
169
168
|
- `origins`: counts the number of entries per origin
|
170
|
-
- `
|
169
|
+
- `exceptions`: counts the number of entries per exception
|
171
170
|
- `all`: counts all groups
|
172
171
|
|
173
172
|
```
|
174
173
|
$ sherlog --count levels,categories log-file.log
|
175
174
|
```
|
176
175
|
|
176
|
+
*Don't forget to set an operation or `sherlog` will not show anything in your console!*
|
177
|
+
|
177
178
|
## Built-in Patterns
|
178
179
|
|
179
180
|
Currently, Sherlog has the following patterns:
|
@@ -185,4 +186,3 @@ Currently, Sherlog has the following patterns:
|
|
185
186
|
## License
|
186
187
|
|
187
188
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
188
|
-
|
data/bin/sherlog
CHANGED
data/changelog.md
CHANGED
data/sherlog-holmes.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
+
spec.required_ruby_version = '>= 2.0'
|
22
|
+
|
21
23
|
spec.add_dependency 'yummi', '~> 0.9.5'
|
22
24
|
|
23
25
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sherlog-holmes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ataxexe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yummi
|
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
115
|
requirements:
|
116
116
|
- - ">="
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
118
|
+
version: '2.0'
|
119
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - ">="
|