logutils-activerecord 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Manifest.txt +8 -0
- data/lib/logutils/activerecord/deleter.rb +15 -0
- data/lib/logutils/activerecord/models.rb +16 -0
- data/lib/logutils/activerecord/schema.rb +44 -0
- data/lib/logutils/activerecord/version.rb +2 -2
- data/lib/logutils/activerecord.rb +57 -0
- data/lib/logutils/server/public/style.css +49 -0
- data/lib/logutils/server/views/_version.erb +5 -0
- data/lib/logutils/server/views/index.erb +26 -0
- data/lib/logutils/server/views/layout.erb +15 -0
- data/lib/logutils/server.rb +58 -0
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4eaba1108c6e07023fbb10cd0d8b12a489812920
|
4
|
+
data.tar.gz: dc5038396877005a0d9e48d275f3fe45ab50292b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b2739e3295457a0e4071efd696008ef9fedfe148beb4fdedbb40cf799714d3286d1378cf0938f53165c0ba7e5d98fc6d9c0710875c0b8c8cb58257d1258d084
|
7
|
+
data.tar.gz: f4ae69a8b77dbb27d7a5431f33b519506edfe5bfe9ed939c0b4a25879e9271e9113faf27c3ae1b1f6ab814ec073fb0e46311937fcd7e80f8e3a6809137d532d3
|
data/Manifest.txt
CHANGED
@@ -3,4 +3,12 @@ Manifest.txt
|
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
5
|
lib/logutils/activerecord.rb
|
6
|
+
lib/logutils/activerecord/deleter.rb
|
7
|
+
lib/logutils/activerecord/models.rb
|
8
|
+
lib/logutils/activerecord/schema.rb
|
6
9
|
lib/logutils/activerecord/version.rb
|
10
|
+
lib/logutils/server.rb
|
11
|
+
lib/logutils/server/public/style.css
|
12
|
+
lib/logutils/server/views/_version.erb
|
13
|
+
lib/logutils/server/views/index.erb
|
14
|
+
lib/logutils/server/views/layout.erb
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module LogDb
|
4
|
+
module Model
|
5
|
+
|
6
|
+
class Log < ActiveRecord::Base
|
7
|
+
|
8
|
+
end # class Log
|
9
|
+
|
10
|
+
end # module Model
|
11
|
+
|
12
|
+
##### add convenience module alias in plural e.g. lets you use include LogDb::Models
|
13
|
+
Models = Model
|
14
|
+
|
15
|
+
end # module LogDb
|
16
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
module LogDb
|
3
|
+
|
4
|
+
class CreateDb ## fix/todo: change to ActiveRecord::Migration why? why not?
|
5
|
+
|
6
|
+
def self.up
|
7
|
+
|
8
|
+
ActiveRecord::Schema.define do
|
9
|
+
|
10
|
+
create_table :logs do |t|
|
11
|
+
t.string :msg, :null => false
|
12
|
+
t.string :level, :null => false # e.g. fatal, error, warn, info, debug
|
13
|
+
t.string :app
|
14
|
+
t.string :tag # e.g. class name w/ namespace e.g. SportDB.Reader etc. # NB: change to name?
|
15
|
+
t.integer :pid
|
16
|
+
t.integer :tid
|
17
|
+
t.string :ts # timestamp - change to datetime?
|
18
|
+
# add filename, line, method ??
|
19
|
+
t.timestamps
|
20
|
+
end
|
21
|
+
|
22
|
+
#####################################
|
23
|
+
# todo: add more fields ?? e.g.
|
24
|
+
#
|
25
|
+
# %m : The message to be logged
|
26
|
+
# %d : The ISO8601 Timestamp
|
27
|
+
# %L : The log level, e.g INFO, WARN
|
28
|
+
# %l : The log level (short), e.g. I, W
|
29
|
+
# %p : The PID of the process from where the log event occured
|
30
|
+
# %t : The Thread ID from where the log event occured
|
31
|
+
# %h : The hostname of the machine from where the log event occured
|
32
|
+
# %f : The filename from where the log event occured
|
33
|
+
# %n : The line number of the file from where the log event occured
|
34
|
+
# %F : The filename with path from where the log event occured
|
35
|
+
# %M : The method where the log event occured
|
36
|
+
|
37
|
+
|
38
|
+
end # block Schema.define
|
39
|
+
|
40
|
+
end # method up
|
41
|
+
|
42
|
+
end # class CreateDb
|
43
|
+
|
44
|
+
end # module LogDb
|
@@ -1,4 +1,61 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
##
|
4
|
+
# NOTE: logutils addon (logutils assumed/required) will NOT work stand-alone
|
3
5
|
|
6
|
+
# rubygems / 3rd party libs
|
4
7
|
|
8
|
+
require 'active_record' ## todo: add sqlite3? etc.
|
9
|
+
|
10
|
+
|
11
|
+
# our own code
|
12
|
+
|
13
|
+
require 'logutils/activerecord/version' # NOTE: let version always go first
|
14
|
+
require 'logutils/activerecord/models'
|
15
|
+
require 'logutils/activerecord/schema'
|
16
|
+
require 'logutils/activerecord/deleter'
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
module LogDb
|
22
|
+
|
23
|
+
class DbHandler
|
24
|
+
include Models
|
25
|
+
|
26
|
+
def write( ev )
|
27
|
+
if( ev.fatal? || ev.error? || ev.warn? || ev.unknown? )
|
28
|
+
## create log entry in db table (logs)
|
29
|
+
Log.create!( level: ev.level, msg: ev.msg, pid: ev.pid, tid: ev.tid, ts: ev.ts )
|
30
|
+
end
|
31
|
+
end # method write
|
32
|
+
end # class DbHandler
|
33
|
+
|
34
|
+
def self.create
|
35
|
+
CreateDb.up
|
36
|
+
end
|
37
|
+
|
38
|
+
# delete ALL records (use with care!)
|
39
|
+
def self.delete!
|
40
|
+
puts '*** deleting log table records/data...'
|
41
|
+
Deleter.new.run
|
42
|
+
end # method delete!
|
43
|
+
|
44
|
+
|
45
|
+
def self.stats
|
46
|
+
# to be done
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
STDDBHANDLER = DbHandler.new # default/standard db handler
|
51
|
+
|
52
|
+
def self.setup # check: use different name? e.g. configure or connect ?? why or why not?
|
53
|
+
# turn on logging to db - assumes active connection
|
54
|
+
STDLOGGER.handlers << STDDBHANDLER
|
55
|
+
end
|
56
|
+
|
57
|
+
end # module LogDb
|
58
|
+
|
59
|
+
|
60
|
+
# say hello
|
61
|
+
puts LogDb.banner if $DEBUG || (defined?($RUBYLIBS_DEBUG) && $RUBYLIBS_DEBUG)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
body { font-family: arial,verdana,helvetica; }
|
4
|
+
|
5
|
+
.log-id,
|
6
|
+
.log-pid,
|
7
|
+
.log-created-at { font-size: 60%; color: grey; }
|
8
|
+
|
9
|
+
.log-id { text-align: right; }
|
10
|
+
|
11
|
+
.log-level,
|
12
|
+
.log-msg { font-size: 80%; }
|
13
|
+
|
14
|
+
.log-created-at,
|
15
|
+
.log-pid,
|
16
|
+
.log-msg { white-space: nowrap; }
|
17
|
+
|
18
|
+
.log-level { font-weight: bold; }
|
19
|
+
|
20
|
+
.log-msg.warn { font-weight: bold; }
|
21
|
+
|
22
|
+
|
23
|
+
/****
|
24
|
+
* links
|
25
|
+
*/
|
26
|
+
|
27
|
+
a {
|
28
|
+
color: black;
|
29
|
+
text-decoration: none; }
|
30
|
+
a:hover {
|
31
|
+
color: black;
|
32
|
+
background-color: aqua;
|
33
|
+
text-decoration: underline; }
|
34
|
+
a:visited {
|
35
|
+
color: black; }
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
/**********
|
40
|
+
* version / powered by
|
41
|
+
*/
|
42
|
+
|
43
|
+
.version {
|
44
|
+
text-align: center;
|
45
|
+
margin-top: 10px;
|
46
|
+
color: grey; }
|
47
|
+
.version a, .version span {
|
48
|
+
font-size: 12px;
|
49
|
+
color: grey; }
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<div class='version'>
|
2
|
+
<a href="https://github.com/rubylibs/logutils">log.db/<%= LogDb::VERSION %></a> -
|
3
|
+
<span>Ruby/<%= "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE}/#{RUBY_PLATFORM})" %> on</span>
|
4
|
+
<span>Sinatra/<%= Sinatra::VERSION %> (<%= ENV['RACK_ENV'] %>)</span>
|
5
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
<h3><%= Log.count %> Logs</h3>
|
3
|
+
|
4
|
+
<!-- todo:
|
5
|
+
add filter for FATAL,ERROR,WARN,etc.
|
6
|
+
add log count per kind? (e.g. 20 errors, 5 warns, etc.)
|
7
|
+
|
8
|
+
css: use colors
|
9
|
+
|
10
|
+
- error/fatal - red?
|
11
|
+
- warn - // bold or organge?
|
12
|
+
- info - normal
|
13
|
+
- debug - light grey??
|
14
|
+
-->
|
15
|
+
|
16
|
+
<table>
|
17
|
+
<% Log.all.each do |log| %>
|
18
|
+
<tr>
|
19
|
+
<td class='log-id'><%= log.id %>.</td>
|
20
|
+
<td class='log-level <%= log.level %>'>[<%= log.level %>]</td>
|
21
|
+
<td class='log-msg <%= log.level %>'><%= log.msg %></td>
|
22
|
+
<td class='log-pid'><%= "#{log.pid}.#{log.tid}" %></td>
|
23
|
+
<td class='log-created-at' <%= log.level %>'><%= log.created_at %></td>
|
24
|
+
</tr>
|
25
|
+
<% end %>
|
26
|
+
</table>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
######
|
2
|
+
# NB: use rackup to startup Sinatra service (see config.ru)
|
3
|
+
#
|
4
|
+
# e.g. config.ru:
|
5
|
+
# require './boot'
|
6
|
+
# run LogDb::Server
|
7
|
+
|
8
|
+
|
9
|
+
# 3rd party libs/gems - include/require in ./boot
|
10
|
+
### require 'sinatra/base'
|
11
|
+
|
12
|
+
|
13
|
+
# NOTE: it's an addon for logutils
|
14
|
+
# assume logutils and logutils/activerecord already required
|
15
|
+
# require 'logutils'
|
16
|
+
# require 'logutils/db'
|
17
|
+
|
18
|
+
|
19
|
+
# our own code
|
20
|
+
|
21
|
+
module LogDb
|
22
|
+
|
23
|
+
class Server < Sinatra::Base
|
24
|
+
|
25
|
+
def self.banner
|
26
|
+
"logdb-service/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] on Sinatra/#{Sinatra::VERSION} (#{ENV['RACK_ENV']})"
|
27
|
+
end
|
28
|
+
|
29
|
+
PUBLIC_FOLDER = "#{LogDb.root}/lib/logutils/server/public"
|
30
|
+
VIEWS_FOLDER = "#{LogDb.root}/lib/logutils/server/views"
|
31
|
+
|
32
|
+
puts "[boot] logdb-service - setting public folder to: #{PUBLIC_FOLDER}"
|
33
|
+
puts "[boot] logdb-service - setting views folder to: #{VIEWS_FOLDER}"
|
34
|
+
|
35
|
+
set :public_folder, PUBLIC_FOLDER # set up the static dir (with images/js/css inside)
|
36
|
+
set :views, VIEWS_FOLDER # set up the views dir
|
37
|
+
|
38
|
+
set :static, true # set up static file routing
|
39
|
+
|
40
|
+
#####################
|
41
|
+
# Models
|
42
|
+
|
43
|
+
include Models
|
44
|
+
|
45
|
+
##############################################
|
46
|
+
# Controllers / Routing / Request Handlers
|
47
|
+
|
48
|
+
get '/' do
|
49
|
+
erb :index
|
50
|
+
end
|
51
|
+
|
52
|
+
end # class Server
|
53
|
+
end # module LogDb
|
54
|
+
|
55
|
+
|
56
|
+
# say hello
|
57
|
+
puts LogDb::Server.banner
|
58
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logutils-activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logutils
|
@@ -80,7 +80,15 @@ files:
|
|
80
80
|
- README.md
|
81
81
|
- Rakefile
|
82
82
|
- lib/logutils/activerecord.rb
|
83
|
+
- lib/logutils/activerecord/deleter.rb
|
84
|
+
- lib/logutils/activerecord/models.rb
|
85
|
+
- lib/logutils/activerecord/schema.rb
|
83
86
|
- lib/logutils/activerecord/version.rb
|
87
|
+
- lib/logutils/server.rb
|
88
|
+
- lib/logutils/server/public/style.css
|
89
|
+
- lib/logutils/server/views/_version.erb
|
90
|
+
- lib/logutils/server/views/index.erb
|
91
|
+
- lib/logutils/server/views/layout.erb
|
84
92
|
homepage: https://github.com/rubylibs/logutils-activerecord
|
85
93
|
licenses:
|
86
94
|
- Public Domain
|