mojo_logger 0.2.0-java → 0.3.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1becdf2a946b6a2b50a015999dfc888a51e5be4
4
- data.tar.gz: 469dc6e7c51e52ff0adaa40324aa2a2ac7295053
3
+ metadata.gz: d11d721f03d6f5ec11d8633a6d37319d79be15ec
4
+ data.tar.gz: 624e65eb57dd6e4e0c4bb9c4ce29e715f1fe91ef
5
5
  SHA512:
6
- metadata.gz: 3443db7bda39c995c0735dc1c4f17a8090474c32bcf7e970fd4ce0b9ef3eb69af85f58d5e19bf59dd9c5df39b324c32337bea2c8d943b1d3f05f2fc563ab246e
7
- data.tar.gz: f78dd6aa6fec19a2dae56d83ace5b1e0f61ef7dd4b7ae6bcd2d11251904efbc3d9aaa9c6ebfb0e3ff725964a9bfbb50a53fe73fbd519c8308ab1c31ab311b7ff
6
+ metadata.gz: 69371ddc10ef50313b8073926ee17f8786d678e2ca3891c115ce42985dc4874d982f7ba292d16d881b98e76b7f6fdcbb805b70e1801926e998ca6d769b3a7218
7
+ data.tar.gz: f0c55445392bb65bc30e97aadc48d9b538f1f0db993c58a862cfc3813646cd3daf0d0f6b42497edf8cd8dd581a7fe3cee10e0cc465471327eaf8449f31112f78
data/Gemfile CHANGED
@@ -2,7 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mojo_logger.gemspec
4
4
  gemspec
5
-
6
- group :test do
7
- gem 'rspec'
8
- end
data/README.md CHANGED
@@ -28,8 +28,8 @@ Or install it yourself as:
28
28
  ```ruby
29
29
  require 'mojo_logger'
30
30
 
31
- MojoLogger.logger.debug "This is a message"
32
- #=> This is a message
31
+ MojoLogger.debug "This is a message"
32
+ #=> This is a message
33
33
 
34
34
  ```
35
35
 
@@ -74,10 +74,10 @@ MojoLogger.config do |config|
74
74
  config.default_log_level = :warn
75
75
  end
76
76
 
77
- MojoLogger.logger.debug "This won't show up"
77
+ MojoLogger.debug "This won't show up"
78
78
  #=> nil
79
79
 
80
- MojoLogger.logger.warn "This will show up"
80
+ MojoLogger.warn "This will show up"
81
81
  #=> This will show up
82
82
 
83
83
  ```
@@ -109,6 +109,43 @@ end
109
109
 
110
110
  ```
111
111
 
112
+ #### Add Custom adapter for format your logs
113
+ Add an adapter that will accept whatever fields you want to input and output a hash.
114
+ This hash will be converted to json by MojoLogger.
115
+
116
+ ```ruby
117
+ require 'mojo_logger'
118
+ include MojoLogger
119
+
120
+ ENV['RACK_ENV'] = 'development'
121
+
122
+ # by default you use the standard adapter
123
+
124
+ mojo_debug({}, 'category', 'this is my message', { custom: :field })
125
+ # => {"time":"04-01-2016 22:25:33.019 +0000","app":"Mojo","env":"development","session_id":null,"reference_id":null,"api":null,"category":"category","message":"this is my message","custom":"field"}
126
+
127
+ class CustomLogAdapter
128
+ # an adapter must repond to #format() and return a Hash
129
+ def format(message)
130
+ {
131
+ 'message' => message,
132
+ 'constant' => 'Hello!'
133
+ }
134
+ end
135
+ end
136
+
137
+
138
+ MojoLogger.config do |config|
139
+ config.adapter = CustomLogAdapter.new
140
+ end
141
+
142
+ # now you can call the #mojo_* methods with the parameter you define
143
+
144
+ mojo_debug('my message')
145
+ # => {"time":"04-01-2016 22:26:43.441 +0000","app":"Mojo","env":"development","message":"my message","constant":"Hello!"}
146
+
147
+ ```
148
+
112
149
 
113
150
  ## Development
114
151
 
@@ -0,0 +1,9 @@
1
+ require 'benchmark'
2
+
3
+ array = (1..1000000).map { rand }
4
+
5
+ Benchmark.bmbm do |x|
6
+ x.report("sort!") { array.dup.sort! }
7
+ x.report("sort") { array.dup.sort }
8
+ end
9
+
@@ -1,5 +1,6 @@
1
1
  require_relative 'mojo_logger/version'
2
2
  require_relative 'mojo_logger/mojo_logger'
3
+ require_relative 'mojo_logger/default_adapter'
3
4
  require_relative 'mojo_logger/configurator'
4
5
  require_relative 'mojo_logger/appender'
5
6
 
@@ -4,7 +4,7 @@ module MojoLogger
4
4
  class Configurator
5
5
  extend Forwardable
6
6
 
7
- attr_reader :properties_file
7
+ attr_reader :properties_file, :env
8
8
  attr_accessor :application_name
9
9
  def_delegators :@default_appender, :pattern, :pattern=
10
10
  def_delegators :@default_appender, :max_file_size, :max_file_size=
@@ -16,6 +16,8 @@ module MojoLogger
16
16
  @use_default_appender = true
17
17
  @appenders = []
18
18
  @application_name = "Mojo"
19
+ @adapter = DefaultAdapter.new
20
+ @env = ENV['RAILS_ENV'] || ENV['RACK_ENV']
19
21
  end
20
22
 
21
23
  def default_log_level
@@ -53,6 +55,15 @@ module MojoLogger
53
55
  properties
54
56
  end
55
57
 
58
+
59
+ def adapter=(adapter)
60
+ @adapter = adapter
61
+ end
62
+
63
+ def adapter
64
+ @adapter
65
+ end
66
+
56
67
  private
57
68
 
58
69
  def generate_root_logger_line
@@ -0,0 +1,29 @@
1
+ module MojoLogger
2
+ class DefaultAdapter
3
+
4
+ def format(api_request, category, message, options=nil)
5
+ msg = {
6
+ 'session_id' => api_request[:session_id],
7
+ 'reference_id' => api_request[:reference_id],
8
+ 'api' => api_request[:api],
9
+ 'category' => category,
10
+ 'message' => message
11
+ }
12
+
13
+ msg.merge!(process_options(options)) if options
14
+ msg
15
+ end
16
+
17
+ private
18
+
19
+ def process_options(options)
20
+ if options.is_a?(Hash)
21
+ options
22
+ else
23
+ { 'options' => options }
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+
@@ -1,9 +1,13 @@
1
1
  require 'java'
2
2
  require 'time'
3
3
  require 'json'
4
+ require 'stringio'
5
+ require 'forwardable'
4
6
  require_relative '../jars/log4j-1.2.17.jar'
5
7
 
6
8
  module MojoLogger
9
+ extend SingleForwardable
10
+ def_delegators :logger, :debug, :info, :warn, :error, :fatal
7
11
 
8
12
  def mojo_debug(*args)
9
13
  MojoLogger.mojo_debug(*args)
@@ -31,19 +35,12 @@ module MojoLogger
31
35
  @@logger ||= configure_logger
32
36
  end
33
37
 
34
- def mojo_msg(api_request, category, message, options=nil)
38
+ def mojo_msg(*args)
35
39
  msg = {
36
40
  'time' => Time.now.utc.strftime("%m-%d-%Y %H:%M:%S.%L %z"),
37
- 'app' => configurator.application_name,
38
- 'session_id' => api_request[:session_id],
39
- 'reference_id' => api_request[:reference_id],
40
- 'api' => api_request[:api],
41
- 'category' => category,
42
- 'message' => message
43
- }
44
-
45
- processed_opts = process_options(options)
46
- msg.merge!(processed_opts) if processed_opts
41
+ 'app' => configurator.application_name,
42
+ 'env' => configurator.env
43
+ }.merge!(configurator.adapter.format(*args))
47
44
 
48
45
  msg.to_json
49
46
  end
@@ -1,3 +1,3 @@
1
1
  module MojoLogger
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -28,4 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "bundler", "~> 1.8"
29
29
  spec.add_development_dependency "rake", "~> 10.0"
30
30
  spec.add_development_dependency 'rspec'
31
+ spec.add_development_dependency 'pry'
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mojo_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: java
6
6
  authors:
7
7
  - John Thomas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-19 00:00:00.000000000 Z
11
+ date: 2016-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ name: pry
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: |2
56
70
  This gem is a wrapper around log4j that allow you to
57
71
  construct a log4j.properties file from a config block, rather than actually
@@ -72,10 +86,12 @@ files:
72
86
  - bin/console
73
87
  - bin/setup
74
88
  - conf/log4j.properties
89
+ - lib/bench/gen.rb
75
90
  - lib/jars/log4j-1.2.17.jar
76
91
  - lib/mojo_logger.rb
77
92
  - lib/mojo_logger/appender.rb
78
93
  - lib/mojo_logger/configurator.rb
94
+ - lib/mojo_logger/default_adapter.rb
79
95
  - lib/mojo_logger/mojo_logger.rb
80
96
  - lib/mojo_logger/version.rb
81
97
  - mojo_logger.gemspec