la_logger 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/Gemfile.lock ADDED
@@ -0,0 +1,67 @@
1
+ GEM
2
+ remote: http://ruby.taobao.org/
3
+ specs:
4
+ ast (1.1.0)
5
+ backports (3.3.3)
6
+ bson (1.9.2)
7
+ bson_ext (1.9.2)
8
+ bson (~> 1.9.2)
9
+ cool.io (1.1.1)
10
+ iobuffer (>= 1.0.0)
11
+ diff-lcs (1.2.4)
12
+ dotenv (0.9.0)
13
+ fluent-logger (0.4.6)
14
+ msgpack (>= 0.4.4, < 0.6.0, != 0.5.3, != 0.5.2, != 0.5.1, != 0.5.0)
15
+ yajl-ruby (~> 1.0)
16
+ fluent-plugin-mongo (0.6.7)
17
+ fluentd (>= 0.10.7)
18
+ mongo (>= 1.6.0)
19
+ fluentd (0.10.38)
20
+ cool.io (~> 1.1.1)
21
+ http_parser.rb (~> 0.5.1)
22
+ json (>= 1.4.3)
23
+ msgpack (>= 0.4.4, < 0.6.0, != 0.5.3, != 0.5.2, != 0.5.1, != 0.5.0)
24
+ yajl-ruby (~> 1.0)
25
+ foreman (0.63.0)
26
+ dotenv (>= 0.7)
27
+ thor (>= 0.13.6)
28
+ http_parser.rb (0.5.3)
29
+ iobuffer (1.1.2)
30
+ json (1.8.0)
31
+ mongo (1.9.1)
32
+ bson (~> 1.9.1)
33
+ msgpack (0.5.5)
34
+ parser (2.0.0.pre6)
35
+ ast (~> 1.1)
36
+ slop (~> 3.4, >= 3.4.5)
37
+ powerpack (0.0.6)
38
+ rainbow (1.1.4)
39
+ rspec (2.14.1)
40
+ rspec-core (~> 2.14.0)
41
+ rspec-expectations (~> 2.14.0)
42
+ rspec-mocks (~> 2.14.0)
43
+ rspec-core (2.14.5)
44
+ rspec-expectations (2.14.2)
45
+ diff-lcs (>= 1.1.3, < 2.0)
46
+ rspec-mocks (2.14.3)
47
+ rubocop (0.12.0)
48
+ backports (~> 3.3.3)
49
+ parser (~> 2.0.0.pre6)
50
+ powerpack (~> 0.0.3)
51
+ rainbow (>= 1.1.4)
52
+ slop (3.4.6)
53
+ thor (0.18.1)
54
+ yajl-ruby (1.1.0)
55
+
56
+ PLATFORMS
57
+ ruby
58
+
59
+ DEPENDENCIES
60
+ bson_ext
61
+ fluent-logger
62
+ fluent-plugin-mongo
63
+ fluentd
64
+ foreman
65
+ mongo
66
+ rspec
67
+ rubocop
data/README.md CHANGED
@@ -4,7 +4,7 @@ Require: ruby 1.9.x, fluent-logger (not working on JRuby without modification).
4
4
 
5
5
  ## Concepts
6
6
 
7
- - Include into any class, expose a singleton logger object and `log_xxx` functions:
7
+ - Initialize a logger object with `label` and log level:
8
8
 
9
9
  class LoggerUser
10
10
  def logger
@@ -13,18 +13,21 @@ Require: ruby 1.9.x, fluent-logger (not working on JRuby without modification).
13
13
  end
14
14
 
15
15
  def logger_this
16
+ # use warn, error, fatal, ... to log messages with optional
17
+ # extra information in hash format:
16
18
  logger.error('oops! an error happend!', {extra: 'data'})
19
+
20
+ # send (post) message using fluent-logger object directly
17
21
  logger.post('custom.tag', {custom: 'message'})
18
22
  end
19
23
  end
20
24
 
21
25
  - Silently fails-over to `STDOUT` if `ENV['FLUENTD']` not defined.
22
26
 
23
- To use fluentd service, define: `ENV[FLUENTD] = 'localhost:24224'`
24
- somewhere in your code before use the logger. Default port `24224` is optional.
27
+ To use fluentd service, define: `ENV[FLUENTD] = 'localhost:24224:label'`
28
+ somewhere in your code before use the logger.
25
29
 
26
- You can use an additional `ENV['FLUENTD_TAG']` to initialize default tag for the
27
- fluent-logger.
30
+ Default port `24224` is optional, `label` is also optional (default is `nil`).
28
31
 
29
32
  Note: as logger object is wrapped by a singleton class, there is no effect to
30
33
  change this setting after logger object has created.
@@ -33,3 +36,17 @@ change this setting after logger object has created.
33
36
 
34
37
  Imported from ruby's default `Logger::Severity`, namely: `debug, info, warn, error,
35
38
  fatal, unknown`.
39
+
40
+ ## Develop or Test
41
+
42
+ Run `foreman start` to start the `fluentd` server fro test.
43
+
44
+ ## Production
45
+
46
+ Set up your fluentd conf file, set
47
+
48
+ <match lalogger.**>
49
+
50
+ where `lalogger` equals the tag parts you set in your `ENV['FLUENTD']` variable.
51
+
52
+ Optionally set `remove_tag_prefix lalogger.` to remove tag from collection names.
data/config/fluent.conf CHANGED
@@ -18,31 +18,31 @@
18
18
  # http://localhost:24220/api/plugins
19
19
  # http://localhost:24220/api/plugins?type=TYPE
20
20
  # http://localhost:24220/api/plugins?tag=MYTAG
21
- <source>
22
- type monitor_agent
23
- port 24220
24
- </source>
25
-
21
+ # <source>
22
+ # type monitor_agent
23
+ # port 24220
24
+ # </source>
25
+ #
26
26
  # Listen DRb for debug
27
27
  # <source>
28
28
  # type debug_agent
29
29
  # port 24230
30
30
  # </source>
31
31
 
32
- <match la.**>
32
+ <match lalogger.**>
33
33
  # plugin type
34
34
  type mongo
35
-
35
+
36
36
  # mongodb host + port
37
37
  host localhost
38
38
  port 27017
39
-
39
+
40
40
  # mongodb db + collection
41
- database lamancha_log
41
+ database lalogger_test
42
42
  tag_mapped
43
- collection default
44
-
45
- remove_tag_prefix la.
43
+ collection default
44
+
45
+ remove_tag_prefix lalogger.
46
46
 
47
47
  # interval
48
48
  flush_interval 1s
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Define version of the module
4
4
  module LaLogger
5
- VERSION = '0.0.1'
5
+ VERSION = '0.0.2'
6
6
  end
data/lib/la_logger.rb CHANGED
@@ -19,11 +19,11 @@ class LaLogger
19
19
 
20
20
  def initialize
21
21
  if ENV['FLUENTD']
22
- host_, port_ = ENV['FLUENTD'].split ':'
23
- host_ ||= 'localhost'
24
- port_ ||= 24224
22
+ host_, port_, tag_ = ENV['FLUENTD'].split ':'
23
+ host_ = 'localhost' unless host_ and host_.size > 0
24
+ port_ = 24224 unless port_ and port_.size > 0
25
25
  @logger = Fluent::Logger::FluentLogger.new(
26
- ENV['FLUENTD_TAG'], host: host_.to_s, port: port_.to_i
26
+ tag_, host: host_.to_s, port: port_.to_i
27
27
  )
28
28
  else
29
29
  @logger = Fluent::Logger::ConsoleLogger.open($stderr)
@@ -5,7 +5,7 @@ include Mongo
5
5
 
6
6
  module MongoHelper
7
7
  def db
8
- MongoClient.new('localhost', 27017).db('lamancha_log')
8
+ MongoClient.new('localhost', 27017).db('lalogger_test')
9
9
  end
10
10
 
11
11
  def get_last_logs(col)
@@ -12,7 +12,7 @@ include MongoHelper
12
12
  # first test class
13
13
  class UserA
14
14
  def logger
15
- @logger ||= LaLogger.new('la.user_a', LaLogger::INFO)
15
+ @logger ||= LaLogger.new('user_a', LaLogger::INFO)
16
16
  end
17
17
 
18
18
  def test_log_error(msg = 'error message from A')
@@ -27,7 +27,7 @@ end
27
27
  # second test class
28
28
  class UserB
29
29
  def logger
30
- @logger ||= LaLogger.new('la.user_b')
30
+ @logger ||= LaLogger.new('user_b')
31
31
  end
32
32
 
33
33
  def test_log_error(msg = 'error message from B')
@@ -50,7 +50,7 @@ describe LaLogger do
50
50
 
51
51
  describe 'default level' do
52
52
  it 'log error messages' do
53
- LaLogger.new('la.global').error('error message from global')
53
+ LaLogger.new('global').error('error message from global')
54
54
  has_log('global', 'error', 'error message from global').should be_true
55
55
  end
56
56
  end
data/spec/spec_helper.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'rspec'
4
4
 
5
+ ENV['FLUENTD'] = 'localhost:24224:lalogger'
5
6
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
6
7
 
7
8
  # in spec/spec_helper.rb
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: la_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Huang Wei
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-09-03 00:00:00.000000000 Z
12
+ date: 2013-09-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: fluent-logger
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rspec
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: mongo
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: bson_ext
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: simplecov
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ~>
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ~>
81
92
  - !ruby/object:Gem::Version
@@ -88,6 +99,7 @@ extra_rdoc_files: []
88
99
  files:
89
100
  - .rspec
90
101
  - Gemfile
102
+ - Gemfile.lock
91
103
  - Procfile
92
104
  - README.md
93
105
  - benchmark/singleton.rb
@@ -99,30 +111,30 @@ files:
99
111
  - spec/helpers/mongo_helper.rb
100
112
  - spec/la_logger_spec.rb
101
113
  - spec/spec_helper.rb
102
- - tuser.rb
103
114
  homepage: https://github.com/7lime/la_logger-gem
104
115
  licenses:
105
116
  - MIT
106
- metadata: {}
107
117
  post_install_message:
108
118
  rdoc_options: []
109
119
  require_paths:
110
120
  - lib
111
121
  required_ruby_version: !ruby/object:Gem::Requirement
122
+ none: false
112
123
  requirements:
113
124
  - - ! '>='
114
125
  - !ruby/object:Gem::Version
115
126
  version: '0'
116
127
  required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
117
129
  requirements:
118
130
  - - ! '>='
119
131
  - !ruby/object:Gem::Version
120
132
  version: '0'
121
133
  requirements: []
122
134
  rubyforge_project:
123
- rubygems_version: 2.0.6
135
+ rubygems_version: 1.8.23
124
136
  signing_key:
125
- specification_version: 4
137
+ specification_version: 3
126
138
  summary: Wrap fluent logger as a singleton object, silently fail-over to STDOUT if
127
139
  fluentd service not defined.
128
140
  test_files:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MmMzNjQ0YTZhMWFmYTYxMDI3MmUzODYxM2VmNWZiNDFhMjBkZWY3NA==
5
- data.tar.gz: !binary |-
6
- ZmNiOTRjOGIyODdlYjdmMWI4NjIwMWZiYTJkNGJmNzA3MmVjMGNkMw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NTZhNmZkMmFkMzYzMTliNDMzYmUyNzQyYTg2N2YxN2ZiN2U2MTIzMWE5Nzkz
10
- MmM5NmExYjljMTExNWM1YzI0NmY1YjA2NzUwZDVhNTM4ODBjMTk4NmQ0OWUw
11
- ZWVmZjEwMzJhOGIyNTE4NmUwODdiMzRhY2Q4ZDYzNTgwYmRmYTU=
12
- data.tar.gz: !binary |-
13
- YzI2ZTA2YWMyNDdhMjFlM2Q1NGNiNjliMDY1Y2ZkMWYxZWYxMzJkNjFhYTYz
14
- YzZmM2VmZjk3ZjAwOTEwYmJhYzVkZDBlNDdiNjE3MThlMDAxMGJmYTQxMDMw
15
- MDhiYzY3MmFlYjUxODcyOWRlMjM1ODFkMTI5Yjk5ODc5NWJlYWI=
data/tuser.rb DELETED
@@ -1,21 +0,0 @@
1
- $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__)) + '/lib'
2
-
3
- require 'la_logger'
4
-
5
- LaLogger.logger.post('La', {message: 'La Mon'})
6
-
7
- class User
8
- include LaLogger
9
-
10
- def say
11
- log_error('An error occured.')
12
- end
13
-
14
- def say_other
15
- logger_init('La Mancha')
16
- log_error('Error occured again.')
17
- end
18
- end
19
-
20
- User.new.say
21
- User.new.say_other