chainsaw 0.0.7 → 0.0.8
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.
- data/README.md +1 -1
- data/lib/chainsaw/detector.rb +7 -3
- data/lib/chainsaw/version.rb +1 -1
- data/test/detector_test.rb +8 -0
- data/test/logs/nslog.log +4 -0
- metadata +12 -10
data/README.md
CHANGED
@@ -21,7 +21,7 @@ be found here: https://github.com/mojombo/chronic
|
|
21
21
|
# You can use a hypen to specify a time range (you can mix and match formats)
|
22
22
|
|
23
23
|
> chainsaw access.log 2012-08-01 - 2012-09-17 # entries within August 1st and September 17th
|
24
|
-
> chainsaw access.log
|
24
|
+
> chainsaw access.log july - yesterday # entries within July and yesterday
|
25
25
|
|
26
26
|
## Features
|
27
27
|
|
data/lib/chainsaw/detector.rb
CHANGED
@@ -2,7 +2,7 @@ module Chainsaw
|
|
2
2
|
class Detector
|
3
3
|
PATTERNS = {
|
4
4
|
:clf => {
|
5
|
-
:pattern => /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} (?:-|[^ ]+) (?:-|[^ ]+) \[(\d{2}\/[a-z]{3}\/\d{4}:\d{2}:\d{2}:\d{2}
|
5
|
+
:pattern => /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} (?:-|[^ ]+) (?:-|[^ ]+) \[(\d{2}\/[a-z]{3}\/\d{4}:\d{2}:\d{2}:\d{2} (-|\+)\d{4})\]/i,
|
6
6
|
:time_format => '%d/%b/%Y:%H:%M:%S %z'
|
7
7
|
},
|
8
8
|
:apache_error => {
|
@@ -18,7 +18,7 @@ module Chainsaw
|
|
18
18
|
:time_format => '%Y-%m-%dT%H:%M:%S'
|
19
19
|
},
|
20
20
|
:rails => {
|
21
|
-
:pattern => /^started [a-z]+ "[^"]+" for \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} at (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
|
21
|
+
:pattern => /^started [a-z]+ "[^"]+" for \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} at (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} (-|\+)\d{4})/i,
|
22
22
|
:time_format => '%Y-%m-%d %H:%M:%S %z'
|
23
23
|
},
|
24
24
|
:syslog => {
|
@@ -42,12 +42,16 @@ module Chainsaw
|
|
42
42
|
:time_format => '%d/%b/%Y %H:%M:%S'
|
43
43
|
},
|
44
44
|
:python => {
|
45
|
-
:pattern => /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/i,
|
45
|
+
:pattern => /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}),\d{3}/i,
|
46
46
|
:time_format => '%Y-%m-%d %H:%M:%S'
|
47
47
|
},
|
48
48
|
:django => {
|
49
49
|
:pattern => /^\[(\d{2}\/[a-z]{3}\/\d{4} \d{2}:\d{2}:\d{2})\]/i,
|
50
50
|
:time_format => '%d/%b/%Y %H:%M:%S'
|
51
|
+
},
|
52
|
+
:nslog => {
|
53
|
+
:pattern => /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\.\d{3} [a-z0-9]+\[/i,
|
54
|
+
:time_format => '%Y-%m-%d %H:%M:%S'
|
51
55
|
}
|
52
56
|
}
|
53
57
|
|
data/lib/chainsaw/version.rb
CHANGED
data/test/detector_test.rb
CHANGED
@@ -113,6 +113,14 @@ describe Chainsaw::Detector do
|
|
113
113
|
time.must_equal Time.local(2012, 9, 03, 21, 49, 47)
|
114
114
|
end
|
115
115
|
|
116
|
+
it 'detects nslog log format' do
|
117
|
+
line = get_log_line('nslog.log')
|
118
|
+
format = Detector.detect(line)
|
119
|
+
time = get_time(line, format)
|
120
|
+
|
121
|
+
format.type.must_equal :nslog
|
122
|
+
time.must_equal Time.local(2012, 8, 30, 04, 54, 48)
|
123
|
+
end
|
116
124
|
|
117
125
|
def get_time(line, format)
|
118
126
|
timestamp = line.match(format.pattern)[1]
|
data/test/logs/nslog.log
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chainsaw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-09-
|
13
|
+
date: 2012-09-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: chronic
|
17
|
-
requirement: &
|
17
|
+
requirement: &70343402535640 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 0.7.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70343402535640
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake
|
28
|
-
requirement: &
|
28
|
+
requirement: &70343402535000 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.9.2.2
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70343402535000
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: minitest
|
39
|
-
requirement: &
|
39
|
+
requirement: &70343402534380 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 3.0.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70343402534380
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: mocha
|
50
|
-
requirement: &
|
50
|
+
requirement: &70343402533340 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
version: 0.11.4
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70343402533340
|
59
59
|
description: Filter logfiles based on a time range
|
60
60
|
email:
|
61
61
|
- tdunn13@gmail.com
|
@@ -87,6 +87,7 @@ files:
|
|
87
87
|
- test/logs/django.log
|
88
88
|
- test/logs/mongodb.log
|
89
89
|
- test/logs/nginx_error.log
|
90
|
+
- test/logs/nslog.log
|
90
91
|
- test/logs/puppet.log
|
91
92
|
- test/logs/python.log
|
92
93
|
- test/logs/rack.log
|
@@ -129,6 +130,7 @@ test_files:
|
|
129
130
|
- test/logs/django.log
|
130
131
|
- test/logs/mongodb.log
|
131
132
|
- test/logs/nginx_error.log
|
133
|
+
- test/logs/nslog.log
|
132
134
|
- test/logs/puppet.log
|
133
135
|
- test/logs/python.log
|
134
136
|
- test/logs/rack.log
|