logster 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 880b7ec2d08afb765398135ffd2bf975e0007444
4
- data.tar.gz: 11d0172d19c11031054aa0cd8fcbe34eb0a140be
3
+ metadata.gz: d6db47d9f150d240a116b31797583819d771149a
4
+ data.tar.gz: d19dc6552f7e957c855fe08e226e5ddefb9e1b2e
5
5
  SHA512:
6
- metadata.gz: 5c916e319794b6f9d882f6c6b186ff758093d0235b18d63c909878988615ab0a71b3296ff5d8821e171cd14147ac81e2a10fe4c9b175c233b8380d7e667a8edf
7
- data.tar.gz: 80175a7e1879b62450c2e7f6dd976ef04f05f4d5630fa98cac2ba6361d3ad1dabed9406a9439a466c8fbfb011290e0e50dce1bb13652d3329faf6172be1d04ec
6
+ metadata.gz: f93c9f0bb6e788aa84de4fd92dca6705095a91f9208186e3edf70661647928aa6c05c4a5494be41ad9efe7346be0bdf177b874de26255de3985404e9dda8fedd
7
+ data.tar.gz: d7189a4045d001f03238942e7253521b2a456ae946ab94aea5a9ca0a4dc546f008a89ce2a7202056c12027bcb461ef86bcd74b4565a40ff4ca3d384cbe6997dc
data/README.md CHANGED
@@ -50,3 +50,5 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
50
50
  - Add your on with Logster.add_to_env(env, key, value)
51
51
  - 2014-05-12: Version 0.0.6
52
52
  - Add referer to env
53
+ - 2014-05-13: Version 0.0.7
54
+ - Add support for javascript exception logging
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rake' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rake', 'rake')
@@ -2,16 +2,42 @@ module Logster
2
2
  module Middleware
3
3
  class Reporter
4
4
 
5
+ PATH_INFO = "PATH_INFO".freeze
6
+
5
7
  def initialize(app, config={})
6
8
  @app = app
9
+ @error_path = (Logster.config.subdirectory || '/logs') + '/report_js_error'
7
10
  end
8
11
 
9
12
  def call(env)
10
13
  Thread.current[Logster::Logger::LOGSTER_ENV] = env
14
+
15
+ path = env[PATH_INFO]
16
+ if path == @error_path
17
+ return report_js_error(env)
18
+ end
19
+
11
20
  @app.call(env)
12
21
  ensure
13
22
  Thread.current[Logster::Logger::LOGSTER_ENV] = nil
14
23
  end
24
+
25
+ def report_js_error(env)
26
+ req = Rack::Request.new(env)
27
+ message = req["message"] || ""
28
+ message << "\nUrl: " << req["url"] if req["url"]
29
+ message << "\nLine: " << req["line"] if req["line"]
30
+ message << "\nColumn: " << req["column"] if req["column"]
31
+
32
+ backtrace = req["stacktrace"] || ""
33
+ Logster.store.report(::Logger::Severity::WARN,
34
+ "javascript",
35
+ message,
36
+ backtrace: backtrace,
37
+ env: env)
38
+ [200,{},["OK"]]
39
+ end
40
+
15
41
  end
16
42
  end
17
43
  end
@@ -1,5 +1,9 @@
1
1
  module Logster::Rails
2
2
 
3
+ # this magically registers logster.js in the asset pipeline
4
+ class Engine < Rails::Engine
5
+ end
6
+
3
7
  def self.set_logger(config)
4
8
  return unless Rails.env.development? || Rails.env.production?
5
9
 
@@ -23,13 +23,13 @@ module Logster
23
23
 
24
24
  message = Message.new(severity, progname, message)
25
25
 
26
- if opts && opts[:backtrace]
26
+ if opts && backtrace = opts[:backtrace]
27
27
  message.backtrace = backtrace
28
28
  else
29
29
  message.backtrace = caller.join("\n")
30
30
  end
31
31
 
32
- if opts && env=opts[:env]
32
+ if opts && env = opts[:env]
33
33
  message.populate_from_env(env)
34
34
  end
35
35
 
@@ -1,3 +1,3 @@
1
1
  module Logster
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,30 @@
1
+ (function(){
2
+ var lastReport = null;
3
+
4
+ window.onerror = function(message, url, line, column, errorObj) {
5
+ debugger;
6
+ // never bother reporting more than once a minute
7
+ if(lastReport && new Date() - lastReport < 1000 * 60) {
8
+ return;
9
+ }
10
+
11
+ lastReport = new Date();
12
+
13
+ var err = {
14
+ message: message,
15
+ url: url,
16
+ line: line,
17
+ column: column
18
+ };
19
+
20
+ if(errorObj && errorObj.stack) {
21
+ err.stacktrace = errorObj.stack;
22
+ }
23
+
24
+ $.ajax("<%= Logster.config.subdirectory || '/logs' %>" + "/report_js_error",{
25
+ data: err,
26
+ type: "POST",
27
+ cache: false
28
+ });
29
+ };
30
+ })();
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - UI for viewing logs in Rack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
11
+ date: 2014-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,6 +99,7 @@ email:
99
99
  - sam.saffron@gmail.com
100
100
  executables:
101
101
  - guard
102
+ - rake
102
103
  extensions: []
103
104
  extra_rdoc_files: []
104
105
  files:
@@ -122,6 +123,7 @@ files:
122
123
  - assets/javascript/templates/message.handlebars
123
124
  - assets/stylesheets/app.css
124
125
  - bin/guard
126
+ - bin/rake
125
127
  - bower.json
126
128
  - lib/logster.rb
127
129
  - lib/logster/configuration.rb
@@ -137,6 +139,7 @@ files:
137
139
  - test/logster/test_logger.rb
138
140
  - test/logster/test_redis_store.rb
139
141
  - test/test_helper.rb
142
+ - vendor/assets/javascripts/logster.js.erb
140
143
  homepage: ''
141
144
  licenses:
142
145
  - MIT