Class: Logster::BaseStore
- Inherits:
-
Object
- Object
- Logster::BaseStore
- Defined in:
- lib/logster/base_store.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#allow_custom_patterns ⇒ Object
Returns the value of attribute allow_custom_patterns.
-
#ignore ⇒ Object
Returns the value of attribute ignore.
-
#level ⇒ Object
Returns the value of attribute level.
-
#max_retention ⇒ Object
Returns the value of attribute max_retention.
-
#skip_empty ⇒ Object
Returns the value of attribute skip_empty.
Instance Method Summary collapse
-
#bulk_get(message_keys) ⇒ Object
Get a group of messages by their message_keys.
-
#check_rate_limits(severity) ⇒ Object
Checks all the existing rate limiters to check if any has been exceeded.
-
#clear ⇒ Object
Delete all unprotected messages in the store.
-
#clear_all ⇒ Object
Delete all messages, including protected messages.
- #clear_suppression_patterns_cache ⇒ Object
-
#count ⇒ Object
The number of messages currently stored.
- #delete(message_key) ⇒ Object
-
#get(message_key, load_env: true) ⇒ Object
Get a message by its message_key.
-
#get_all_ignore_count ⇒ Object
returns a hash that maps patterns to the number of messages they have suppressed.
-
#get_env(message_key) ⇒ Object
Get a message’s env by its message_key.
-
#get_patterns(set_name) ⇒ Object
returns an array of strings each of which must be convertible to regexp.
-
#increment_ignore_count(pattern) ⇒ Object
increments the number of messages that have been suppressed by a pattern.
-
#initialize ⇒ BaseStore
constructor
A new instance of BaseStore.
-
#insert_pattern(set_name, pattern) ⇒ Object
takes a string as ‘pattern` and places it under the set `set_name`.
-
#protect(message_key) ⇒ Object
Mark a message as protected; i.e.
- #rate_limited?(ip_address, perform: false, limit: 60) ⇒ Boolean
-
#register_rate_limit(severities, limit, duration, &block) ⇒ Object
Registers a rate limit on the given severities of logs.
-
#remove_ignore_count(pattern) ⇒ Object
removes number of suppressed messages by a pattern.
-
#remove_pattern(set_name, pattern) ⇒ Object
takes a string as ‘pattern` and removes it from the set `set_name`.
-
#replace_and_bump(message, save_env: true) ⇒ Object
Modify the saved message to the given one (identified by message.key) and bump it to the top of the latest list.
- #report(severity, progname, msg, opts = {}) ⇒ Object
-
#save(message) ⇒ Object
Save a new message at the front of the latest list.
-
#similar_key(message) ⇒ Object
Check if another message with the same grouping_key is already stored.
-
#solve(message_key) ⇒ Object
Solve a particular message, causing all old messages with matching version and backtrace to be deleted (report should delete any solved messages when called).
-
#unprotect(message_key) ⇒ Object
Clear the protected mark for a message.
Constructor Details
Instance Attribute Details
#allow_custom_patterns ⇒ Object
Returns the value of attribute allow_custom_patterns.
6 7 8 |
# File 'lib/logster/base_store.rb', line 6 def allow_custom_patterns @allow_custom_patterns end |
#ignore ⇒ Object
Returns the value of attribute ignore.
6 7 8 |
# File 'lib/logster/base_store.rb', line 6 def ignore @ignore end |
#level ⇒ Object
Returns the value of attribute level.
6 7 8 |
# File 'lib/logster/base_store.rb', line 6 def level @level end |
#max_retention ⇒ Object
Returns the value of attribute max_retention.
6 7 8 |
# File 'lib/logster/base_store.rb', line 6 def max_retention @max_retention end |
#skip_empty ⇒ Object
Returns the value of attribute skip_empty.
6 7 8 |
# File 'lib/logster/base_store.rb', line 6 def skip_empty @skip_empty end |
Instance Method Details
#bulk_get(message_keys) ⇒ Object
Get a group of messages by their message_keys
52 53 54 |
# File 'lib/logster/base_store.rb', line 52 def bulk_get() not_implemented end |
#check_rate_limits(severity) ⇒ Object
Checks all the existing rate limiters to check if any has been exceeded
87 88 89 |
# File 'lib/logster/base_store.rb', line 87 def check_rate_limits(severity) not_implemented end |
#clear ⇒ Object
Delete all unprotected messages in the store.
37 38 39 |
# File 'lib/logster/base_store.rb', line 37 def clear not_implemented end |
#clear_all ⇒ Object
Delete all messages, including protected messages.
42 43 44 |
# File 'lib/logster/base_store.rb', line 42 def clear_all not_implemented end |
#clear_suppression_patterns_cache ⇒ Object
190 191 192 |
# File 'lib/logster/base_store.rb', line 190 def clear_suppression_patterns_cache @patterns_cache.clear end |
#count ⇒ Object
The number of messages currently stored.
32 33 34 |
# File 'lib/logster/base_store.rb', line 32 def count not_implemented end |
#delete(message_key) ⇒ Object
66 67 68 |
# File 'lib/logster/base_store.rb', line 66 def delete() not_implemented end |
#get(message_key, load_env: true) ⇒ Object
Get a message by its message_key
47 48 49 |
# File 'lib/logster/base_store.rb', line 47 def get(, load_env: true) not_implemented end |
#get_all_ignore_count ⇒ Object
returns a hash that maps patterns to the number of messages they have suppressed
116 117 118 |
# File 'lib/logster/base_store.rb', line 116 def get_all_ignore_count {} end |
#get_env(message_key) ⇒ Object
Get a message’s env by its message_key
57 58 59 |
# File 'lib/logster/base_store.rb', line 57 def get_env() not_implemented end |
#get_patterns(set_name) ⇒ Object
returns an array of strings each of which must be convertible to regexp
102 103 104 |
# File 'lib/logster/base_store.rb', line 102 def get_patterns(set_name) not_implemented end |
#increment_ignore_count(pattern) ⇒ Object
increments the number of messages that have been suppressed by a pattern
107 108 |
# File 'lib/logster/base_store.rb', line 107 def increment_ignore_count(pattern) end |
#insert_pattern(set_name, pattern) ⇒ Object
takes a string as ‘pattern` and places it under the set `set_name`
92 93 94 |
# File 'lib/logster/base_store.rb', line 92 def insert_pattern(set_name, pattern) not_implemented end |
#protect(message_key) ⇒ Object
Mark a message as protected; i.e. it is not deleted by the #clear method
62 63 64 |
# File 'lib/logster/base_store.rb', line 62 def protect() not_implemented end |
#rate_limited?(ip_address, perform: false, limit: 60) ⇒ Boolean
120 121 122 |
# File 'lib/logster/base_store.rb', line 120 def rate_limited?(ip_address, perform: false, limit: 60) not_implemented end |
#register_rate_limit(severities, limit, duration, &block) ⇒ Object
Registers a rate limit on the given severities of logs
82 83 84 |
# File 'lib/logster/base_store.rb', line 82 def register_rate_limit(severities, limit, duration, &block) not_implemented end |
#remove_ignore_count(pattern) ⇒ Object
removes number of suppressed messages by a pattern
111 112 |
# File 'lib/logster/base_store.rb', line 111 def remove_ignore_count(pattern) end |
#remove_pattern(set_name, pattern) ⇒ Object
takes a string as ‘pattern` and removes it from the set `set_name`
97 98 99 |
# File 'lib/logster/base_store.rb', line 97 def remove_pattern(set_name, pattern) not_implemented end |
#replace_and_bump(message, save_env: true) ⇒ Object
Modify the saved message to the given one (identified by message.key) and bump it to the top of the latest list
21 22 23 |
# File 'lib/logster/base_store.rb', line 21 def replace_and_bump(, save_env: true) not_implemented end |
#report(severity, progname, msg, opts = {}) ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/logster/base_store.rb', line 124 def report(severity, progname, msg, opts = {}) return if (!msg || (String === msg && msg.empty?)) && skip_empty return if level && severity < level = Logster::Message.new(severity, progname, msg, opts[:timestamp], count: opts[:count]) env = opts[:env] || {} backtrace = opts[:backtrace] if Hash === env && env[:backtrace] # Special - passing backtrace through env backtrace = env.delete(:backtrace) end .populate_from_env(env) if backtrace if backtrace.respond_to? :join backtrace = backtrace.join("\n") end .backtrace = backtrace else .backtrace = caller.join("\n") end return if ignore && ignore.any? do |pattern| if =~ pattern val = Regexp === pattern ? pattern.inspect : pattern.to_s increment_ignore_count(val) true end end if Logster.config.enable_custom_patterns_via_ui || allow_custom_patterns custom_ignore = @patterns_cache.fetch do Logster::SuppressionPattern.find_all(store: self) end return if custom_ignore.any? do |pattern| if =~ pattern increment_ignore_count(pattern.inspect) true end end end similar = nil if Logster.config.allow_grouping key = self.similar_key() similar = get(key, load_env: false) if key end if similar has_env = !similar.env.nil? && !similar.env.empty? if similar.count < Logster::MAX_GROUPING_LENGTH && !has_env similar.env = get_env(similar.key) || {} end save_env = similar.() replace_and_bump(similar, save_env: save_env || has_env) similar else save end end |
#save(message) ⇒ Object
Save a new message at the front of the latest list.
16 17 18 |
# File 'lib/logster/base_store.rb', line 16 def save() not_implemented end |
#similar_key(message) ⇒ Object
Check if another message with the same grouping_key is already stored. Returns the similar message’s message.key
27 28 29 |
# File 'lib/logster/base_store.rb', line 27 def similar_key() not_implemented end |
#solve(message_key) ⇒ Object
Solve a particular message, causing all old messages with matching version and backtrace to be deleted (report should delete any solved messages when called)
77 78 79 |
# File 'lib/logster/base_store.rb', line 77 def solve() not_implemented end |
#unprotect(message_key) ⇒ Object
Clear the protected mark for a message.
71 72 73 |
# File 'lib/logster/base_store.rb', line 71 def unprotect() not_implemented end |