log_jam 0.0.1 → 0.0.2
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.
- data/log_jam.rb +8 -1
- data/log_jam_test.rb +8 -0
- data/readme.md +33 -2
- metadata +1 -1
data/log_jam.rb
CHANGED
@@ -3,13 +3,20 @@ module LogJam
|
|
3
3
|
|
4
4
|
@@logs = []
|
5
5
|
|
6
|
+
def setup_logger(logger, level)
|
7
|
+
@@default_logger = logger
|
8
|
+
@@default_level = level
|
9
|
+
end
|
10
|
+
|
6
11
|
def priorities(*list)
|
7
12
|
@@priorities = list
|
8
13
|
end
|
9
14
|
|
10
15
|
def puts(msg)
|
11
16
|
@@logs << msg
|
12
|
-
|
17
|
+
if defined? @@default_logger
|
18
|
+
@@default_logger.send(@@default_level, msg)
|
19
|
+
end
|
13
20
|
end
|
14
21
|
|
15
22
|
def write_to_disk
|
data/log_jam_test.rb
CHANGED
@@ -21,6 +21,14 @@ class InvoiceLog < Log; end
|
|
21
21
|
|
22
22
|
class LogJamTest < MiniTest::Unit::TestCase
|
23
23
|
|
24
|
+
def test_setup_default_logger
|
25
|
+
log_msg = "invoice=123 account=123"
|
26
|
+
LogJam.setup_logger(Rails.logger, :info)
|
27
|
+
LogJam.priorities(:invoice, :account)
|
28
|
+
LogJam.puts(log_msg)
|
29
|
+
LogJam.drain
|
30
|
+
end
|
31
|
+
|
24
32
|
def test_write_to_disk
|
25
33
|
log_msg = "invoice=123 account=123"
|
26
34
|
LogJam.priorities(:invoice, :account)
|
data/readme.md
CHANGED
@@ -1,10 +1,41 @@
|
|
1
|
-
#
|
1
|
+
# log_jam
|
2
2
|
|
3
3
|
A proxy that persists log messages to a database.
|
4
4
|
|
5
|
+
## Requirements
|
6
|
+
|
7
|
+
log_jam also will call ActiveRecord like classes. `AccountLog.create({})`
|
8
|
+
|
9
|
+
## Install
|
10
|
+
|
11
|
+
```bash
|
12
|
+
$ gem install log_jam
|
13
|
+
```
|
14
|
+
|
5
15
|
## Usage
|
6
16
|
|
7
17
|
```ruby
|
18
|
+
# log_jam will pass along log messages in real time. log_jam will not wait for
|
19
|
+
# you to call drain before it sends messages to the default logger.
|
20
|
+
LogJam.setup_logger(Rails.logger, :info)
|
21
|
+
|
22
|
+
# the order of our priorities determines which table the log will be stored in.
|
23
|
+
LogJam.priorities(:invoice, :account)
|
24
|
+
|
25
|
+
# log_jam will also pass this message to Rails.logger.info
|
8
26
|
LogJam.puts("account=123 invoice=456 invoice created")
|
9
|
-
|
27
|
+
|
28
|
+
# This message drains the logs and figures out how to write to the database.
|
29
|
+
# Since we defined our first priority as :invoice, LogJam will ask the kernel
|
30
|
+
# for the InvoiceLog class. It will then send the create message to the class
|
31
|
+
# with parameters that look like this: {:invoice_id => 456, :message => "account=123 invoice=456 invoice created"}
|
32
|
+
LogJam.write_to_disk
|
33
|
+
```
|
34
|
+
|
35
|
+
## Hacking on log_jam
|
36
|
+
|
37
|
+
I think this lib is feature complete; however, if you find a bug please add a test. To run the tests:
|
38
|
+
|
39
|
+
```bash
|
40
|
+
$ ruby log_jam_test.rb
|
10
41
|
```
|