mojo_logger 0.2.0-java → 0.3.0-java

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.
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