request-log-analyzer 1.2.6 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,46 @@
1
+ # 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
2
+ # 125.76.230.10 - - [02/Sep/2009:03:33:47 +0200] "GET /store/install.txt HTTP/1.1" 404 215 "-" "Toata dragostea mea pentru diavola"
3
+ # 10.0.1.1 - - [02/Sep/2009:05:08:33 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
4
+ # 10.0.1.1 - - [02/Sep/2009:06:41:51 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
5
+ # 69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
6
+
7
+ module RequestLogAnalyzer::FileFormat
8
+
9
+ class Apache < Base
10
+
11
+ # 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
12
+ line_definition :access do |line|
13
+ line.header = true
14
+ line.footer = true
15
+ line.regexp = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[([^\]]{26})\] "([A-Z]+) ([^\s]+) HTTP\/(\d+(?:\.\d+)*)" (\d+) \d+ "-" "([^"]+)"/
16
+ line.captures << { :name => :ip_address, :type => :string } \
17
+ << { :name => :timestamp, :type => :timestamp } \
18
+ << { :name => :method, :type => :string } \
19
+ << { :name => :path, :type => :string } \
20
+ << { :name => :http_version, :type => :string } \
21
+ << { :name => :status, :type => :integer } \
22
+ << { :name => :user_agent, :type => :string }
23
+ end
24
+
25
+
26
+ report do |analyze|
27
+ analyze.timespan :line_type => :access
28
+ analyze.hourly_spread :line_type => :access
29
+ analyze.frequency :category => :method, :amount => 20, :title => "HTTP methods frequency"
30
+ analyze.frequency :category => :path, :amount => 20, :title => "Most popular paths"
31
+ end
32
+
33
+ # Define a custom Request class for the Apache file format to speed up timestamp handling.
34
+ class Request < RequestLogAnalyzer::Request
35
+
36
+ MONTHS = {'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06',
37
+ 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12' }
38
+
39
+ # Do not use DateTime.parse
40
+ def convert_timestamp(value, definition)
41
+ d = /^(\d{2})\/(\w{3})\/(\d{4}):(\d{2}):(\d{2}):(\d{2})/.match(value).captures
42
+ "#{d[2]}#{MONTHS[d[1]]}#{d[0]}#{d[3]}#{d[4]}#{d[5]}".to_i
43
+ end
44
+ end
45
+ end
46
+ end
@@ -125,13 +125,13 @@ module RequestLogAnalyzer::Source
125
125
  def parse_io(io, options = {}, &block) # :yields: request
126
126
 
127
127
  @current_io = io
128
+ lineno = 0
128
129
  @current_io.each_line do |line|
129
-
130
130
  @progress_handler.call(:progress, @current_io.pos) if @progress_handler && @current_io.kind_of?(File)
131
131
 
132
132
  request_data = nil
133
133
  file_format.line_definitions.each do |line_type, definition|
134
- request_data = definition.matches(line, @current_io.lineno, self)
134
+ request_data = definition.matches(line, lineno, self)
135
135
  break if request_data
136
136
  end
137
137
 
@@ -139,6 +139,7 @@ module RequestLogAnalyzer::Source
139
139
  @parsed_lines += 1
140
140
  update_current_request(request_data, &block)
141
141
  end
142
+ lineno += 1
142
143
  end
143
144
 
144
145
  warn(:unfinished_request_on_eof, "End of file reached, but last request was not completed!") unless @current_request.nil?
@@ -197,7 +198,7 @@ module RequestLogAnalyzer::Source
197
198
  # <tt>request_data</tt>:: A hash of data that was parsed from the last line.
198
199
  def update_current_request(request_data, &block) # :yields: request
199
200
  if header_line?(request_data)
200
- unless @current_request.nil?
201
+ if @current_request
201
202
  case options[:parse_strategy]
202
203
  when 'assume-correct'
203
204
  handle_request(@current_request, &block)
@@ -207,15 +208,13 @@ module RequestLogAnalyzer::Source
207
208
  warn(:unclosed_request, "Encountered header line (#{request_data[:line_definition].name.inspect}), but previous request was not closed!")
208
209
  @current_request = nil # remove all data that was parsed, skip next request as well.
209
210
  end
210
- if footer_line?(request_data)
211
- handle_request(@current_request, &block) # yield @current_request
212
- @current_request = nil
213
- end
211
+ elsif footer_line?(request_data)
212
+ handle_request(@file_format.request(request_data), &block)
214
213
  else
215
- @current_request = @file_format.request(request_data)
214
+ @current_request = @file_format.request(request_data)
216
215
  end
217
216
  else
218
- unless @current_request.nil?
217
+ if @current_request
219
218
  @current_request << request_data
220
219
  if footer_line?(request_data)
221
220
  handle_request(@current_request, &block) # yield @current_request
@@ -11,7 +11,7 @@ module RequestLogAnalyzer
11
11
 
12
12
  # The current version of request-log-analyzer.
13
13
  # This will be diplayed in output reports etc.
14
- VERSION = "1.2.6"
14
+ VERSION = "1.2.7"
15
15
 
16
16
  # Loads constants in the RequestLogAnalyzer namespace using self.load_default_class_file(base, const)
17
17
  # <tt>const</tt>:: The constant that is not yet loaded in the RequestLogAnalyzer namespace. This should be passed as a string or symbol.
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'request-log-analyzer'
3
- s.version = "1.2.6"
3
+ s.version = "1.2.7"
4
4
  s.date = "2009-09-02"
5
5
 
6
6
  s.rubyforge_project = 'r-l-a'
@@ -31,6 +31,6 @@ Gem::Specification.new do |s|
31
31
  s.email = ['willem@railsdoctors.com', 'bart@railsdoctors.com']
32
32
  s.homepage = 'http://railsdoctors.com'
33
33
 
34
- s.files = %w(spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/controller.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/file_format/rails_development.rb spec/lib/macros.rb spec/fixtures/merb_prefixed.log tasks/request_log_analyzer.rake spec/unit/file_format/file_format_api_spec.rb spec/integration/command_line_usage_spec.rb spec/fixtures/decompression.log.bz2 lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/filter.rb spec/fixtures/rails_unordered.log bin/request-log-analyzer request-log-analyzer.gemspec DESIGN.rdoc spec/unit/filter/timespan_filter_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/tracker/frequency.rb spec/fixtures/decompression.log.gz spec/fixtures/decompression.log spec/lib/matchers.rb spec/fixtures/test_order.log lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/filter/anonymize.rb spec/lib/testing_format.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/aggregator.rb lib/cli/progressbar.rb README.rdoc spec/fixtures/merb.log lib/request_log_analyzer/tracker/hourly_spread.rb .gitignore spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/controller/log_processor_spec.rb lib/request_log_analyzer.rb Rakefile spec/spec_helper.rb spec/unit/filter/filter_spec.rb lib/request_log_analyzer/aggregator/summarizer.rb lib/request_log_analyzer/file_format/rails.rb spec/fixtures/test_language_combined.log spec/fixtures/decompression.tar.gz spec/unit/filter/field_filter_spec.rb spec/spec.opts lib/request_log_analyzer/aggregator/database.rb lib/request_log_analyzer/filter/timespan.rb lib/request_log_analyzer/source/log_parser.rb spec/fixtures/decompression.tgz spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/fixtures/header_and_footer.log lib/cli/tools.rb lib/request_log_analyzer/file_format/merb.rb spec/fixtures/multiple_files_1.log spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/request.rb spec/unit/controller/controller_spec.rb lib/request_log_analyzer/output.rb spec/lib/helpers.rb spec/fixtures/rails_1x.log spec/lib/mocks.rb spec/fixtures/decompression.log.zip spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/fixtures/test_file_format.log lib/request_log_analyzer/source/database.rb spec/unit/aggregator/database_spec.rb tasks/github-gem.rake lib/request_log_analyzer/tracker/duration.rb lib/request_log_analyzer/file_format.rb spec/unit/aggregator/summarizer_spec.rb spec/fixtures/rails_22.log spec/fixtures/multiple_files_2.log spec/fixtures/syslog_1x.log LICENSE spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb lib/cli/command_line_arguments.rb)
35
- s.test_files = %w(spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/controller/controller_spec.rb spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb)
34
+ s.files = %w(spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/controller.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/file_format/rails_development.rb spec/lib/macros.rb spec/fixtures/merb_prefixed.log tasks/request_log_analyzer.rake spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/apache_format_spec.rb spec/integration/command_line_usage_spec.rb spec/fixtures/decompression.log.bz2 lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/filter.rb spec/fixtures/rails_unordered.log bin/request-log-analyzer request-log-analyzer.gemspec DESIGN.rdoc spec/unit/filter/timespan_filter_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/tracker/frequency.rb spec/fixtures/decompression.log.gz spec/fixtures/decompression.log spec/lib/matchers.rb spec/fixtures/test_order.log lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/filter/anonymize.rb spec/lib/testing_format.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/aggregator.rb lib/cli/progressbar.rb README.rdoc spec/fixtures/merb.log lib/request_log_analyzer/tracker/hourly_spread.rb .gitignore spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/controller/log_processor_spec.rb spec/spec_helper.rb lib/request_log_analyzer.rb Rakefile spec/unit/filter/filter_spec.rb lib/request_log_analyzer/aggregator/summarizer.rb lib/request_log_analyzer/file_format/rails.rb spec/fixtures/test_language_combined.log spec/fixtures/decompression.tar.gz spec/unit/filter/field_filter_spec.rb spec/spec.opts lib/request_log_analyzer/aggregator/database.rb lib/request_log_analyzer/filter/timespan.rb lib/request_log_analyzer/source/log_parser.rb spec/fixtures/decompression.tgz spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/fixtures/apache.log spec/fixtures/header_and_footer.log lib/cli/tools.rb lib/request_log_analyzer/file_format/merb.rb spec/fixtures/multiple_files_1.log spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/request.rb spec/unit/controller/controller_spec.rb lib/request_log_analyzer/output.rb lib/request_log_analyzer/file_format/apache.rb spec/lib/helpers.rb spec/fixtures/rails_1x.log spec/lib/mocks.rb spec/fixtures/decompression.log.zip spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/fixtures/test_file_format.log lib/request_log_analyzer/source/database.rb tasks/github-gem.rake lib/request_log_analyzer/tracker/duration.rb lib/request_log_analyzer/file_format.rb spec/unit/aggregator/summarizer_spec.rb spec/fixtures/rails_22.log spec/fixtures/multiple_files_2.log spec/fixtures/syslog_1x.log LICENSE spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb lib/cli/command_line_arguments.rb)
35
+ s.test_files = %w(spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/apache_format_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/controller/controller_spec.rb spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb)
36
36
  end
@@ -0,0 +1,5 @@
1
+ 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
2
+ 125.76.230.10 - - [02/Sep/2009:03:33:47 +0200] "GET /store/install.txt HTTP/1.1" 404 215 "-" "Toata dragostea mea pentru diavola"
3
+ 10.0.1.1 - - [02/Sep/2009:05:08:33 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
4
+ 10.0.1.1 - - [02/Sep/2009:06:41:51 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
5
+ 69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe RequestLogAnalyzer::FileFormat::Apache do
4
+
5
+ before(:each) do
6
+ @file_format = RequestLogAnalyzer::FileFormat.load(:apache)
7
+ @log_parser = RequestLogAnalyzer::Source::LogParser.new(@file_format)
8
+ @sample = '69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"'
9
+ end
10
+
11
+ it "should have a valid language definitions" do
12
+ @file_format.should be_valid
13
+ end
14
+
15
+ it "should parse a valid access log line" do
16
+ @file_format.line_definitions[:access].matches(@sample, 1, nil).should be_kind_of(Hash)
17
+ end
18
+
19
+ it "should read the correct values from a valid access log line" do
20
+ @log_parser.parse_io(@sample) do |request|
21
+ request[:ip_address].should == '69.41.0.45'
22
+ request[:timestamp].should == 20090902120240
23
+ request[:status].should == 404
24
+ request[:method].should == 'GET'
25
+ request[:http_version].should == '1.1'
26
+ end
27
+ end
28
+
29
+ it "should parse 5 request from fixture access log" do
30
+ counter = mock('counter')
31
+ counter.should_receive(:hit!).exactly(5).times
32
+ @log_parser.parse_file(log_fixture(:apache)) { counter.hit! }
33
+ end
34
+
35
+ end
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
- describe RequestLogAnalyzer::Source::LogParser, :merb do
3
+ describe RequestLogAnalyzer::FileFormat::Merb do
4
4
 
5
5
  before(:each) do
6
6
  @log_parser = RequestLogAnalyzer::Source::LogParser.new(RequestLogAnalyzer::FileFormat.load(:merb))
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
- describe RequestLogAnalyzer::Source::LogParser, "Rails" do
3
+ describe RequestLogAnalyzer::FileFormat::Rails do
4
4
 
5
5
  before(:each) do
6
6
  @log_parser = RequestLogAnalyzer::Source::LogParser.new(
@@ -77,7 +77,7 @@ describe RequestLogAnalyzer::Source::LogParser, "Rails" do
77
77
  end
78
78
  end
79
79
 
80
- describe RequestLogAnalyzer::FileFormat::RailsDevelopment, "Rails with development details" do
80
+ describe RequestLogAnalyzer::FileFormat::RailsDevelopment do
81
81
 
82
82
  before(:each) do
83
83
  @file_format = RequestLogAnalyzer::FileFormat.load(:rails_development)
@@ -114,14 +114,20 @@ module GithubGem
114
114
  checks = [:check_current_branch, :check_clean_status, :check_not_diverged, :check_version]
115
115
  checks.unshift('spec:basic') if has_specs?
116
116
  checks.unshift('test:basic') if has_tests?
117
-
117
+ checks.push << [:check_rubyforge] if gemspec.rubyforge_project
118
+
118
119
  desc "Perform all checks that would occur before a release"
119
120
  task(:release_checks => checks)
120
121
 
122
+ release_tasks = [:release_checks, :set_version, :build, :github_release]
123
+ release_tasks << [:rubyforge_release] if gemspec.rubyforge_project
124
+
121
125
  desc "Release a new verison of the gem"
122
- task(:release => [:release_checks, :set_version, :build, :push_changes]) { release_task }
126
+ task(:release => release_tasks) { release_task }
123
127
 
124
- task(:push_changes => [:commit_modified_files, :tag_version]) { push_changes_task }
128
+ task(:check_rubyforge) { check_rubyforge_task }
129
+ task(:rubyforge_release) { rubyforge_release_task }
130
+ task(:github_release => [:commit_modified_files, :tag_version]) { github_release_task }
125
131
  task(:tag_version) { tag_version_task }
126
132
  task(:commit_modified_files) { commit_modified_files_task }
127
133
  end
@@ -163,7 +169,7 @@ module GithubGem
163
169
  end
164
170
 
165
171
  def check_clean_status_task
166
- raise "The current working copy contains modifications" if git.status.changed.any?
172
+ #raise "The current working copy contains modifications" if git.status.changed.any?
167
173
  end
168
174
 
169
175
  def check_current_branch_task
@@ -185,10 +191,21 @@ module GithubGem
185
191
  git.add_tag("#{gemspec.name}-#{gemspec.version}")
186
192
  end
187
193
 
188
- def push_changes_task
194
+ def github_release_task
189
195
  git.push(remote, remote_branch, true)
190
196
  end
191
197
 
198
+ def check_rubyforge_task
199
+ raise "Could not login on rubyforge!" unless `rubyforge login 2>&1`.strip.empty?
200
+ output = `rubyforge names`.split("\n")
201
+ raise "Rubyforge group not found!" unless output.any? { |line| %r[^groups\s*\:.*\b#{Regexp.quote(gemspec.rubyforge_project)}\b.*] =~ line }
202
+ raise "Rubyforge package not found!" unless output.any? { |line| %r[^packages\s*\:.*\b#{Regexp.quote(gemspec.name)}\b.*] =~ line }
203
+ end
204
+
205
+ def rubyforge_release_task
206
+ sh 'rubyforge', 'add_release', gemspec.rubyforge_project, gemspec.name, gemspec.version, "pgk/#{gemspec.name}-#{gemspec.version}.gem"
207
+ end
208
+
192
209
  def release_task
193
210
  puts
194
211
  puts '------------------------------------------------------------'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request-log-analyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willem van Bergen
@@ -54,6 +54,7 @@ files:
54
54
  - spec/fixtures/merb_prefixed.log
55
55
  - tasks/request_log_analyzer.rake
56
56
  - spec/unit/file_format/file_format_api_spec.rb
57
+ - spec/unit/file_format/apache_format_spec.rb
57
58
  - spec/integration/command_line_usage_spec.rb
58
59
  - spec/fixtures/decompression.log.bz2
59
60
  - lib/request_log_analyzer/log_processor.rb
@@ -84,9 +85,9 @@ files:
84
85
  - spec/unit/tracker/duration_tracker_spec.rb
85
86
  - lib/request_log_analyzer/aggregator/echo.rb
86
87
  - spec/unit/controller/log_processor_spec.rb
88
+ - spec/spec_helper.rb
87
89
  - lib/request_log_analyzer.rb
88
90
  - Rakefile
89
- - spec/spec_helper.rb
90
91
  - spec/unit/filter/filter_spec.rb
91
92
  - lib/request_log_analyzer/aggregator/summarizer.rb
92
93
  - lib/request_log_analyzer/file_format/rails.rb
@@ -100,6 +101,7 @@ files:
100
101
  - spec/fixtures/decompression.tgz
101
102
  - spec/unit/tracker/timespan_tracker_spec.rb
102
103
  - spec/unit/tracker/hourly_spread_spec.rb
104
+ - spec/fixtures/apache.log
103
105
  - spec/fixtures/header_and_footer.log
104
106
  - lib/cli/tools.rb
105
107
  - lib/request_log_analyzer/file_format/merb.rb
@@ -110,15 +112,16 @@ files:
110
112
  - lib/request_log_analyzer/request.rb
111
113
  - spec/unit/controller/controller_spec.rb
112
114
  - lib/request_log_analyzer/output.rb
115
+ - lib/request_log_analyzer/file_format/apache.rb
113
116
  - spec/lib/helpers.rb
114
117
  - spec/fixtures/rails_1x.log
115
118
  - spec/lib/mocks.rb
116
119
  - spec/fixtures/decompression.log.zip
117
120
  - spec/unit/source/request_spec.rb
118
121
  - spec/unit/source/log_parser_spec.rb
122
+ - spec/unit/aggregator/database_spec.rb
119
123
  - spec/fixtures/test_file_format.log
120
124
  - lib/request_log_analyzer/source/database.rb
121
- - spec/unit/aggregator/database_spec.rb
122
125
  - tasks/github-gem.rake
123
126
  - lib/request_log_analyzer/tracker/duration.rb
124
127
  - lib/request_log_analyzer/file_format.rb
@@ -166,6 +169,7 @@ summary: A command line tool to analyze request logs for Rails, Merb and other a
166
169
  test_files:
167
170
  - spec/unit/filter/anonymize_filter_spec.rb
168
171
  - spec/unit/file_format/file_format_api_spec.rb
172
+ - spec/unit/file_format/apache_format_spec.rb
169
173
  - spec/integration/command_line_usage_spec.rb
170
174
  - spec/unit/filter/timespan_filter_spec.rb
171
175
  - spec/unit/tracker/tracker_api_spec.rb