universal-access-log-parser 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/lib/universal-access-log-parser.rb +5 -1
- data/spec/bin/benchmark +26 -0
- data/universal-access-log-parser.gemspec +6 -2
- metadata +40 -23
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.1
|
@@ -392,7 +392,11 @@ class UniversalAccessLogParser
|
|
392
392
|
end
|
393
393
|
|
394
394
|
def parse(line)
|
395
|
-
|
395
|
+
begin
|
396
|
+
matched, *strings = @regexp.match(line).to_a
|
397
|
+
rescue ArgumentError => e
|
398
|
+
raise ParsingError.new("parser regexp error: #{e}", self, line)
|
399
|
+
end
|
396
400
|
|
397
401
|
raise ParsingError.new('parser regexp did not match log line', self, line) if strings.empty?
|
398
402
|
|
data/spec/bin/benchmark
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'unprof'
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
|
5
|
+
require 'universal-access-log-parser'
|
6
|
+
|
7
|
+
$lines = 0
|
8
|
+
|
9
|
+
def progress
|
10
|
+
puts $lines
|
11
|
+
end
|
12
|
+
|
13
|
+
UniversalAccessLogParser.new do
|
14
|
+
apache_combined
|
15
|
+
string :handling, :process => lambda{|s| s.to_sym}
|
16
|
+
string :current_status, :nil_on => '-'
|
17
|
+
string :initial_status, :nil_on => '-'
|
18
|
+
integer :cache_hits
|
19
|
+
float :cache_ttl, :nil_on => '-'
|
20
|
+
integer :cache_age
|
21
|
+
float :response_time
|
22
|
+
end.parse_file(File.join(File.dirname(__FILE__), '..', 'data', 'varnishncsa-short.log')).each! do
|
23
|
+
$lines += 1
|
24
|
+
progress if $lines % 10 == 0
|
25
|
+
end
|
26
|
+
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "universal-access-log-parser"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jakub Pastuszek"]
|
12
|
-
s.date = "2011-10-
|
12
|
+
s.date = "2011-10-18"
|
13
13
|
s.description = "Meta parser that allows you to define new parser with ruby DSL to match access log file format you are willing to parse or use one of the predefined parsers like Apache common, IIS and more"
|
14
14
|
s.email = "jpastuszek@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
"VERSION",
|
28
28
|
"lib/common_parsers.rb",
|
29
29
|
"lib/universal-access-log-parser.rb",
|
30
|
+
"spec/bin/benchmark",
|
30
31
|
"spec/common_parsers_spec.rb",
|
31
32
|
"spec/data/apache_access.log",
|
32
33
|
"spec/data/bad1.log",
|
@@ -53,12 +54,14 @@ Gem::Specification.new do |s|
|
|
53
54
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
54
55
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
55
56
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<ruby-prof>, ["~> 0.10.8"])
|
56
58
|
else
|
57
59
|
s.add_dependency(%q<ruby-ip>, [">= 0"])
|
58
60
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
59
61
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
60
62
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
61
63
|
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
+
s.add_dependency(%q<ruby-prof>, ["~> 0.10.8"])
|
62
65
|
end
|
63
66
|
else
|
64
67
|
s.add_dependency(%q<ruby-ip>, [">= 0"])
|
@@ -66,6 +69,7 @@ Gem::Specification.new do |s|
|
|
66
69
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
67
70
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
68
71
|
s.add_dependency(%q<rcov>, [">= 0"])
|
72
|
+
s.add_dependency(%q<ruby-prof>, ["~> 0.10.8"])
|
69
73
|
end
|
70
74
|
end
|
71
75
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: universal-access-log-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 1
|
10
|
+
version: 1.0.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jakub Pastuszek
|
@@ -15,10 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-10-
|
18
|
+
date: 2011-10-18 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
prerelease: false
|
22
|
+
name: ruby-ip
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
24
26
|
- - ">="
|
@@ -27,12 +29,12 @@ dependencies:
|
|
27
29
|
segments:
|
28
30
|
- 0
|
29
31
|
version: "0"
|
30
|
-
version_requirements: *id001
|
31
|
-
name: ruby-ip
|
32
|
-
prerelease: false
|
33
32
|
type: :runtime
|
33
|
+
requirement: *id001
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
|
35
|
+
prerelease: false
|
36
|
+
name: rspec
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
38
|
none: false
|
37
39
|
requirements:
|
38
40
|
- - ~>
|
@@ -43,12 +45,12 @@ dependencies:
|
|
43
45
|
- 3
|
44
46
|
- 0
|
45
47
|
version: 2.3.0
|
46
|
-
version_requirements: *id002
|
47
|
-
name: rspec
|
48
|
-
prerelease: false
|
49
48
|
type: :development
|
49
|
+
requirement: *id002
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
|
-
|
51
|
+
prerelease: false
|
52
|
+
name: bundler
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
52
54
|
none: false
|
53
55
|
requirements:
|
54
56
|
- - ~>
|
@@ -59,12 +61,12 @@ dependencies:
|
|
59
61
|
- 0
|
60
62
|
- 0
|
61
63
|
version: 1.0.0
|
62
|
-
version_requirements: *id003
|
63
|
-
name: bundler
|
64
|
-
prerelease: false
|
65
64
|
type: :development
|
65
|
+
requirement: *id003
|
66
66
|
- !ruby/object:Gem::Dependency
|
67
|
-
|
67
|
+
prerelease: false
|
68
|
+
name: jeweler
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
70
|
none: false
|
69
71
|
requirements:
|
70
72
|
- - ~>
|
@@ -75,12 +77,12 @@ dependencies:
|
|
75
77
|
- 6
|
76
78
|
- 4
|
77
79
|
version: 1.6.4
|
78
|
-
version_requirements: *id004
|
79
|
-
name: jeweler
|
80
|
-
prerelease: false
|
81
80
|
type: :development
|
81
|
+
requirement: *id004
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
|
83
|
+
prerelease: false
|
84
|
+
name: rcov
|
85
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
86
|
none: false
|
85
87
|
requirements:
|
86
88
|
- - ">="
|
@@ -89,10 +91,24 @@ dependencies:
|
|
89
91
|
segments:
|
90
92
|
- 0
|
91
93
|
version: "0"
|
92
|
-
|
93
|
-
|
94
|
+
type: :development
|
95
|
+
requirement: *id005
|
96
|
+
- !ruby/object:Gem::Dependency
|
94
97
|
prerelease: false
|
98
|
+
name: ruby-prof
|
99
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 39
|
105
|
+
segments:
|
106
|
+
- 0
|
107
|
+
- 10
|
108
|
+
- 8
|
109
|
+
version: 0.10.8
|
95
110
|
type: :development
|
111
|
+
requirement: *id006
|
96
112
|
description: Meta parser that allows you to define new parser with ruby DSL to match access log file format you are willing to parse or use one of the predefined parsers like Apache common, IIS and more
|
97
113
|
email: jpastuszek@gmail.com
|
98
114
|
executables: []
|
@@ -113,6 +129,7 @@ files:
|
|
113
129
|
- VERSION
|
114
130
|
- lib/common_parsers.rb
|
115
131
|
- lib/universal-access-log-parser.rb
|
132
|
+
- spec/bin/benchmark
|
116
133
|
- spec/common_parsers_spec.rb
|
117
134
|
- spec/data/apache_access.log
|
118
135
|
- spec/data/bad1.log
|