mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-27 17:46:05 -05:00
FIX: stop logging way too much information
This commit is contained in:
parent
40bcead099
commit
3cab3acd60
4 changed files with 31 additions and 11 deletions
|
@ -157,7 +157,7 @@ GEM
|
||||||
thor (~> 0.15)
|
thor (~> 0.15)
|
||||||
libv8 (3.16.14.3)
|
libv8 (3.16.14.3)
|
||||||
listen (0.7.3)
|
listen (0.7.3)
|
||||||
logster (0.1.2)
|
logster (0.1.3)
|
||||||
lru_redux (0.8.1)
|
lru_redux (0.8.1)
|
||||||
mail (2.5.4)
|
mail (2.5.4)
|
||||||
mime-types (~> 1.16)
|
mime-types (~> 1.16)
|
||||||
|
|
|
@ -6,7 +6,7 @@ class TopicViewItem < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
validates_presence_of :topic_id, :ip_address, :viewed_at
|
validates_presence_of :topic_id, :ip_address, :viewed_at
|
||||||
|
|
||||||
def self.add(topic_id, ip, user_id, at=nil)
|
def self.add(topic_id, ip, user_id=nil, at=nil, skip_redis=false)
|
||||||
# Only store a view once per day per thing per user per ip
|
# Only store a view once per day per thing per user per ip
|
||||||
redis_key = "view:#{topic_id}:#{Date.today.to_s}"
|
redis_key = "view:#{topic_id}:#{Date.today.to_s}"
|
||||||
if user_id
|
if user_id
|
||||||
|
@ -15,11 +15,13 @@ class TopicViewItem < ActiveRecord::Base
|
||||||
redis_key << ":ip-#{ip}"
|
redis_key << ":ip-#{ip}"
|
||||||
end
|
end
|
||||||
|
|
||||||
if $redis.setnx(redis_key, "1")
|
if skip_redis || $redis.setnx(redis_key, "1")
|
||||||
$redis.expire(redis_key, 1.day.to_i)
|
skip_redis || $redis.expire(redis_key, 1.day.to_i)
|
||||||
|
|
||||||
TopicViewItem.transaction do
|
TopicViewItem.transaction do
|
||||||
at ||= Date.today
|
at ||= Date.today
|
||||||
|
|
||||||
|
# AR likes logging failures here, we don't need that
|
||||||
TopicViewItem.create!(topic_id: topic_id, ip_address: ip, viewed_at: at, user_id: user_id)
|
TopicViewItem.create!(topic_id: topic_id, ip_address: ip, viewed_at: at, user_id: user_id)
|
||||||
|
|
||||||
# Update the views count in the parent, if it exists.
|
# Update the views count in the parent, if it exists.
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
if Rails.env.production?
|
if Rails.env.production?
|
||||||
# Logster.store.ignore = [
|
Logster.store.ignore = [
|
||||||
# # honestly, Rails should not be logging this, its real noisy
|
# honestly, Rails should not be logging this, its real noisy
|
||||||
# /^ActionController::RoutingError \(No route matches/,
|
/^ActionController::RoutingError \(No route matches/,
|
||||||
# # suppress trackback spam bots
|
|
||||||
# Logster::IgnorePattern.new("Can't verify CSRF token authenticity", { REQUEST_URI: /\/trackback\/$/ })
|
/^PG::Error: ERROR:\s+duplicate key/,
|
||||||
# ]
|
|
||||||
|
# suppress trackback spam bots
|
||||||
|
Logster::IgnorePattern.new("Can't verify CSRF token authenticity", { REQUEST_URI: /\/trackback\/$/ })
|
||||||
|
]
|
||||||
|
|
||||||
Logster.config.authorize_callback = lambda{|env|
|
Logster.config.authorize_callback = lambda{|env|
|
||||||
user = CurrentUser.lookup_from_env(env)
|
user = CurrentUser.lookup_from_env(env)
|
||||||
|
|
|
@ -1,5 +1,20 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe TopicView do
|
describe TopicViewItem do
|
||||||
|
|
||||||
|
def add(topic_id, ip, user_id=nil)
|
||||||
|
skip_redis = true
|
||||||
|
TopicViewItem.add(topic_id, ip, user_id, nil, skip_redis)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "raises nothing for dupes" do
|
||||||
|
add(2, "1.1.1.1")
|
||||||
|
add(2, "1.1.1.1", 1)
|
||||||
|
|
||||||
|
TopicViewItem.create!(topic_id: 1, ip_address: "1.1.1.1", viewed_at: 1.day.ago)
|
||||||
|
add(1, "1.1.1.1")
|
||||||
|
|
||||||
|
TopicViewItem.count.should == 3
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue