syslog_client 0.1.3 → 0.1.4
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/lib/syslog_client/base.rb +51 -3
- data/lib/syslog_client/deal_flow.rb +2 -1
- data/lib/syslog_client/editor.rb +3 -1
- data/lib/syslog_client/match_shop.rb +1 -0
- data/lib/syslog_client/version.rb +1 -1
- data/syslog_client.gemspec +1 -0
- metadata +66 -29
data/lib/syslog_client/base.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'logglier'
|
3
|
+
require 'mongo'
|
3
4
|
module SyslogClient
|
4
5
|
class Base
|
5
|
-
cattr_accessor :logger
|
6
|
-
@@
|
6
|
+
cattr_accessor :logger, :store_name, :mongodb, :db_name
|
7
|
+
@@store_name = :syslog
|
8
|
+
@@logger = Logglier.new('udp://192.168.2.180:8080')
|
7
9
|
|
8
10
|
class << self
|
9
11
|
def send_log(options)
|
12
|
+
return if options.blank?
|
10
13
|
infos = log_of_options(options)
|
14
|
+
return if infos.blank?
|
11
15
|
infos = infos.is_a?(::Array) ? infos : [infos]
|
12
16
|
|
13
17
|
now = Time.now.strftime('%Y-%m-%d %H:%M:%S')
|
@@ -17,9 +21,53 @@ module SyslogClient
|
|
17
21
|
else
|
18
22
|
info[:operation_time] = now
|
19
23
|
end
|
20
|
-
|
24
|
+
record_log(info)
|
21
25
|
end
|
22
26
|
end
|
27
|
+
|
28
|
+
def record_log(log)
|
29
|
+
case @@store_name.to_sym
|
30
|
+
when :syslog
|
31
|
+
@@logger.info(log.to_json)
|
32
|
+
when :mongodb
|
33
|
+
@@mongodb[@@db_name][log[:type].to_s.tableize].save(log)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def logger=(logglier)
|
38
|
+
unless logglier.is_a?(Logglier)
|
39
|
+
raise ArgumentError, 'The logger should be an instance of Logglier!'
|
40
|
+
end
|
41
|
+
@@logger = logglier
|
42
|
+
end
|
43
|
+
|
44
|
+
def store_name=(store)
|
45
|
+
case store.to_sym
|
46
|
+
when :syslog
|
47
|
+
@@store_name = store
|
48
|
+
@@logger ||= Logglier.new('udp://192.168.2.180:8080')
|
49
|
+
when :mongodb
|
50
|
+
@@store_name = store
|
51
|
+
@@mongodb ||= Mongo::Connection.new
|
52
|
+
@@db_name ||= 'test'
|
53
|
+
else
|
54
|
+
raise ArgumentError, "The store_name allowed in :syslog, :mongodb"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def mongodb=(connection)
|
59
|
+
unless connection.is_a?(Mongo::Connection)
|
60
|
+
raise ArgumentError, 'The mongodb should be an instance of Mongo::Connection!'
|
61
|
+
end
|
62
|
+
@@mongodb = connection
|
63
|
+
end
|
64
|
+
|
65
|
+
def db_name=(name)
|
66
|
+
unless name.is_a?(String) && name.present?
|
67
|
+
raise ArgumentError, 'db_name shoude be an presence instance of String!'
|
68
|
+
end
|
69
|
+
@@db_name = name
|
70
|
+
end
|
23
71
|
end
|
24
72
|
end
|
25
73
|
end
|
@@ -5,13 +5,14 @@ module SyslogClient
|
|
5
5
|
protected
|
6
6
|
def log_of_options(options)
|
7
7
|
_normalize_options(options)
|
8
|
-
options.reverse_merge(:operator => get_operator(options[:operation])).merge(:type => 'deal_flow')
|
8
|
+
options.reverse_merge(:operator => get_operator(options[:operation]).to_s).merge(:type => 'deal_flow')
|
9
9
|
end
|
10
10
|
|
11
11
|
def _normalize_options(options)
|
12
12
|
raise ArgumentError, 'options should be instance of Hash' unless options.is_a?(::Hash)
|
13
13
|
options.symbolize_keys!
|
14
14
|
options.assert_valid_keys(:deal_id, :operation, :operation_time, :operator, :result, :message )
|
15
|
+
options.map { |k, v| options[k] = v.to_s }
|
15
16
|
end
|
16
17
|
|
17
18
|
def get_operator(operation)
|
data/lib/syslog_client/editor.rb
CHANGED
@@ -28,12 +28,14 @@ module SyslogClient
|
|
28
28
|
|
29
29
|
def log_of_changes(options)
|
30
30
|
options[:changes].inject([]) do |infos, change|
|
31
|
-
|
31
|
+
info = {
|
32
32
|
:operation => change[0],
|
33
33
|
:value => change[1][1],
|
34
34
|
:value_was => change[1][0],
|
35
35
|
:type => 'editor'
|
36
36
|
}.merge(options.slice(:user_id, :reason, :entry_class, :entry_id, :operation_time))
|
37
|
+
info.map { |k, v| info[k] = v.to_s }
|
38
|
+
infos << info
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
@@ -12,6 +12,7 @@ module SyslogClient
|
|
12
12
|
raise ArgumentError, 'options should be instance of Hash' unless options.is_a?(::Hash)
|
13
13
|
options.symbolize_keys!
|
14
14
|
options.assert_valid_keys(:reason, :source, :deal_id, :tuan_shop_id, :shop_info_id, :operation_time)
|
15
|
+
options.map { |k, v| options[k] = v.to_s }
|
15
16
|
end
|
16
17
|
end
|
17
18
|
end
|
data/syslog_client.gemspec
CHANGED
metadata
CHANGED
@@ -1,38 +1,64 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: syslog_client
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 4
|
10
|
+
version: 0.1.4
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- tumayun
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-12-28 00:00:00 +08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: logglier
|
16
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
25
|
none: false
|
18
|
-
requirements:
|
26
|
+
requirements:
|
19
27
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 2
|
33
|
+
- 8
|
21
34
|
version: 0.2.8
|
22
35
|
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: mongo
|
23
39
|
prerelease: false
|
24
|
-
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
25
41
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
42
|
+
requirements:
|
43
|
+
- - "="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 9
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 7
|
49
|
+
- 1
|
50
|
+
version: 1.7.1
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
30
53
|
description: syslog client with tuan800
|
31
54
|
email: tumayun.2010@gmail.com
|
32
55
|
executables: []
|
56
|
+
|
33
57
|
extensions: []
|
58
|
+
|
34
59
|
extra_rdoc_files: []
|
35
|
-
|
60
|
+
|
61
|
+
files:
|
36
62
|
- .gitignore
|
37
63
|
- README.md
|
38
64
|
- lib/syslog_client.rb
|
@@ -42,28 +68,39 @@ files:
|
|
42
68
|
- lib/syslog_client/match_shop.rb
|
43
69
|
- lib/syslog_client/version.rb
|
44
70
|
- syslog_client.gemspec
|
71
|
+
has_rdoc: true
|
45
72
|
homepage: https://github.com/tumayun/syslog_client
|
46
73
|
licenses: []
|
74
|
+
|
47
75
|
post_install_message:
|
48
76
|
rdoc_options: []
|
49
|
-
|
77
|
+
|
78
|
+
require_paths:
|
50
79
|
- lib
|
51
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
81
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
90
|
none: false
|
59
|
-
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
hash: 3
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
version: "0"
|
63
98
|
requirements: []
|
99
|
+
|
64
100
|
rubyforge_project:
|
65
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.3.7
|
66
102
|
signing_key:
|
67
103
|
specification_version: 3
|
68
104
|
summary: syslog client!
|
69
105
|
test_files: []
|
106
|
+
|