log4rails 1.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.bsd +12 -0
  3. data/README.md +37 -0
  4. data/lib/log4r/GDC.rb +41 -0
  5. data/lib/log4r/MDC.rb +59 -0
  6. data/lib/log4r/NDC.rb +86 -0
  7. data/lib/log4r/base.rb +74 -0
  8. data/lib/log4r/config.rb +9 -0
  9. data/lib/log4r/configurator.rb +224 -0
  10. data/lib/log4r/formatter/formatter.rb +105 -0
  11. data/lib/log4r/formatter/log4jxmlformatter.rb +65 -0
  12. data/lib/log4r/formatter/patternformatter.rb +145 -0
  13. data/lib/log4r/lib/drbloader.rb +52 -0
  14. data/lib/log4r/lib/xmlloader.rb +24 -0
  15. data/lib/log4r/log4r-rails.yaml +60 -0
  16. data/lib/log4r/logevent.rb +28 -0
  17. data/lib/log4r/logger.rb +206 -0
  18. data/lib/log4r/loggerfactory.rb +89 -0
  19. data/lib/log4r/logserver.rb +28 -0
  20. data/lib/log4r/outputter/bufferedsyslogoutputter.rb +47 -0
  21. data/lib/log4r/outputter/consoleoutputters.rb +18 -0
  22. data/lib/log4r/outputter/datefileoutputter.rb +117 -0
  23. data/lib/log4r/outputter/emailoutputter.rb +143 -0
  24. data/lib/log4r/outputter/fileoutputter.rb +57 -0
  25. data/lib/log4r/outputter/iooutputter.rb +55 -0
  26. data/lib/log4r/outputter/outputter.rb +134 -0
  27. data/lib/log4r/outputter/outputterfactory.rb +60 -0
  28. data/lib/log4r/outputter/remoteoutputter.rb +40 -0
  29. data/lib/log4r/outputter/rollingfileoutputter.rb +234 -0
  30. data/lib/log4r/outputter/scribeoutputter.rb +37 -0
  31. data/lib/log4r/outputter/staticoutputter.rb +30 -0
  32. data/lib/log4r/outputter/syslogoutputter.rb +126 -0
  33. data/lib/log4r/outputter/udpoutputter.rb +53 -0
  34. data/lib/log4r/railtie.rb +211 -0
  35. data/lib/log4r/rdoc/GDC +14 -0
  36. data/lib/log4r/rdoc/MDC +16 -0
  37. data/lib/log4r/rdoc/NDC +41 -0
  38. data/lib/log4r/rdoc/configurator +243 -0
  39. data/lib/log4r/rdoc/emailoutputter +103 -0
  40. data/lib/log4r/rdoc/formatter +39 -0
  41. data/lib/log4r/rdoc/log4jxmlformatter +21 -0
  42. data/lib/log4r/rdoc/log4r +89 -0
  43. data/lib/log4r/rdoc/logger +175 -0
  44. data/lib/log4r/rdoc/logserver +85 -0
  45. data/lib/log4r/rdoc/outputter +108 -0
  46. data/lib/log4r/rdoc/patternformatter +128 -0
  47. data/lib/log4r/rdoc/scribeoutputter +16 -0
  48. data/lib/log4r/rdoc/syslogoutputter +29 -0
  49. data/lib/log4r/rdoc/win32eventoutputter +7 -0
  50. data/lib/log4r/rdoc/yamlconfigurator +20 -0
  51. data/lib/log4r/repository.rb +88 -0
  52. data/lib/log4r/staticlogger.rb +49 -0
  53. data/lib/log4r/version.rb +4 -0
  54. data/lib/log4r/yamlconfigurator.rb +198 -0
  55. data/lib/log4rails.rb +22 -0
  56. metadata +97 -0
@@ -0,0 +1,4 @@
1
+ module Log4r
2
+ Log4rVersion = [1, 1, 11].join '.' # deprecate?
3
+ VERSION = Log4rVersion
4
+ end
@@ -0,0 +1,198 @@
1
+ # :include: rdoc/yamlconfigurator
2
+ #
3
+ # == Other Info
4
+ #
5
+ # Version: $Id$
6
+
7
+ require "log4r/logger"
8
+ require "log4r/outputter/staticoutputter"
9
+ require "log4r/logserver"
10
+ require "log4r/outputter/remoteoutputter"
11
+
12
+ require 'yaml'
13
+
14
+ module Log4r
15
+ # Gets raised when Configurator encounters bad YAML.
16
+ class ConfigError < Exception
17
+ end
18
+
19
+ # See log4r/yamlconfigurator.rb
20
+ class YamlConfigurator
21
+ @@params = Hash.new
22
+
23
+ # Get a parameter's value
24
+ def self.[](param); @@params[param] end
25
+ # Define a parameter with a value
26
+ def self.[]=(param, value); @@params[param] = value end
27
+
28
+
29
+ def self.custom_levels( levels)
30
+ return Logger.root if levels.size == 0
31
+ for i in 0...levels.size
32
+ name = levels[i].to_s
33
+ if name =~ /\s/ or name !~ /^[A-Z]/
34
+ raise TypeError, "#{name} is not a valid Ruby Constant name", caller
35
+ end
36
+ end
37
+ Log4r.define_levels *levels
38
+ end
39
+
40
+ # Given a filename, loads the YAML configuration for Log4r.
41
+ def self.load_yaml_file( filename)
42
+ actual_load( File.open( filename))
43
+ end
44
+
45
+ # You can load a String YAML configuration instead of a file.
46
+ def self.load_yaml_string( string)
47
+ actual_load( string)
48
+ end
49
+
50
+ #######
51
+ private
52
+ #######
53
+
54
+ def self.actual_load( yaml_docs)
55
+ log4r_config = nil
56
+ YAML.load_documents( yaml_docs){ |doc|
57
+ doc.has_key?( 'log4r_config') and log4r_config = doc['log4r_config'] and break
58
+ }
59
+ if log4r_config.nil?
60
+ raise ConfigError,
61
+ "Key 'log4r_config:' not defined in yaml documents", caller[1..-1]
62
+ end
63
+ decode_yaml( log4r_config)
64
+ end
65
+
66
+ def self.decode_yaml( cfg)
67
+ decode_pre_config( cfg['pre_config'])
68
+ cfg['outputters'].each{ |op| decode_outputter( op)}
69
+ cfg['loggers'].each{ |lo| decode_logger( lo)}
70
+ cfg['logserver'].each{ |lo| decode_logserver( lo)} unless cfg['logserver'].nil?
71
+ end
72
+
73
+ def self.decode_pre_config( pre)
74
+ return Logger.root if pre.nil?
75
+ decode_custom_levels( pre['custom_levels'])
76
+ global_config( pre['global'])
77
+ global_config( pre['root'])
78
+ decode_parameters( pre['parameters'])
79
+ end
80
+
81
+ def self.decode_custom_levels( levels)
82
+ return Logger.root if levels.nil?
83
+ begin custom_levels( levels)
84
+ rescue TypeError => te
85
+ raise ConfigError, te.message, caller[1..-4]
86
+ end
87
+ end
88
+
89
+ def self.global_config( e)
90
+ return if e.nil?
91
+ globlev = e['level']
92
+ return if globlev.nil?
93
+ lev = LNAMES.index(globlev) # find value in LNAMES
94
+ Log4rTools.validate_level(lev, 4) # choke on bad level
95
+ Logger.global.level = lev
96
+ end
97
+
98
+ def self.decode_parameters( params)
99
+ params.each{ |p| @@params[p['name']] = p['value']} unless params.nil?
100
+ end
101
+
102
+ def self.decode_outputter( op)
103
+ # fields
104
+ name = op['name']
105
+ type = op['type']
106
+ level = op['level']
107
+ only_at = op['only_at']
108
+ # validation
109
+ raise ConfigError, "Outputter missing name", caller[1..-3] if name.nil?
110
+ raise ConfigError, "Outputter missing type", caller[1..-3] if type.nil?
111
+ Log4rTools.validate_level(LNAMES.index(level)) unless level.nil?
112
+ only_levels = []
113
+ unless only_at.nil?
114
+ for lev in only_at
115
+ alev = LNAMES.index(lev)
116
+ Log4rTools.validate_level(alev, 3)
117
+ only_levels.push alev
118
+ end
119
+ end
120
+
121
+ formatter = decode_formatter( op['formatter'])
122
+
123
+ opts = {}
124
+ opts[:level] = LNAMES.index(level) unless level.nil?
125
+ opts[:formatter] = formatter unless formatter.nil?
126
+ opts.merge!(decode_hash_params(op))
127
+ begin
128
+ Outputter[name] = Log4r.const_get(type).new name, opts
129
+ rescue Exception => ae
130
+ raise ConfigError,
131
+ "Problem creating outputter: #{ae.message}", caller[1..-3]
132
+ end
133
+ Outputter[name].only_at( *only_levels) if only_levels.size > 0
134
+ Outputter[name]
135
+ end
136
+
137
+ def self.decode_formatter( fo)
138
+ return nil if fo.nil?
139
+ type = fo['type']
140
+ raise ConfigError, "Formatter missing type", caller[1..-4] if type.nil?
141
+ begin
142
+ return Log4r.const_get(type).new(decode_hash_params(fo))
143
+ rescue Exception => ae
144
+ raise ConfigError,
145
+ "Problem creating outputter: #{ae.message}", caller[1..-4]
146
+ end
147
+ end
148
+
149
+ ExcludeParams = %w{formatter level name type only_at}
150
+
151
+ # Does the fancy parameter to hash argument transformation
152
+ def self.decode_hash_params(ph)
153
+ case ph
154
+ when Hash
155
+ ph.inject({}){|a,(k,v)| a[k] = self.decode_hash_params(v); a}
156
+ when Array
157
+ ph.map{|v| self.decode_hash_params(v)}
158
+ when String
159
+ self.paramsub(ph)
160
+ else
161
+ ph
162
+ end
163
+ end
164
+
165
+ # Substitues any #{foo} in the YAML with Parameter['foo']
166
+ def self.paramsub(str)
167
+ @@params.each {|param, value|
168
+ str = str.sub("\#{#{param}}", value)
169
+ }
170
+ str
171
+ end
172
+
173
+ def self.decode_logger( lo)
174
+ l = Logger.new lo['name']
175
+ decode_logger_common( l, lo)
176
+ end
177
+
178
+ def self.decode_logserver( lo)
179
+ name = lo['name']
180
+ uri = lo['uri']
181
+ l = LogServer.new name, uri
182
+ decode_logger_common(l, lo)
183
+ end
184
+
185
+ def self.decode_logger_common( l, lo)
186
+ level = lo['level']
187
+ additive = lo['additive']
188
+ trace = lo['trace']
189
+ l.level = LNAMES.index( level) unless level.nil?
190
+ l.additive = additive unless additive.nil?
191
+ l.trace = trace unless trace.nil?
192
+ # and now for outputters
193
+ outs = lo['outputters']
194
+ outs.each {|n| l.add n.strip} unless outs.nil?
195
+ end
196
+ end
197
+ end
198
+
@@ -0,0 +1,22 @@
1
+ # :include: log4r/rdoc/log4r
2
+ #
3
+ # == Other Info
4
+ #
5
+ # Author:: Leon Torres
6
+ # Version:: $Id$
7
+
8
+ require 'log4r/version'
9
+ require "log4r/outputter/fileoutputter"
10
+ require "log4r/outputter/consoleoutputters"
11
+ require "log4r/outputter/staticoutputter"
12
+ require "log4r/outputter/rollingfileoutputter"
13
+ require "log4r/formatter/patternformatter"
14
+ require "log4r/loggerfactory"
15
+ require "log4r/GDC"
16
+ require "log4r/NDC"
17
+ require "log4r/MDC"
18
+
19
+ # rails integration
20
+ if defined?(Rails::Railtie)
21
+ require 'log4r/railtie'
22
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: log4rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.11
5
+ platform: ruby
6
+ authors:
7
+ - bestmike007
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-26 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: See http://bestmike007.com/log4rails for more information. Do not use
14
+ this together with log4r.
15
+ email: i@bestmike007.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - LICENSE.bsd
21
+ - README.md
22
+ - lib/log4r/GDC.rb
23
+ - lib/log4r/MDC.rb
24
+ - lib/log4r/NDC.rb
25
+ - lib/log4r/base.rb
26
+ - lib/log4r/config.rb
27
+ - lib/log4r/configurator.rb
28
+ - lib/log4r/formatter/formatter.rb
29
+ - lib/log4r/formatter/log4jxmlformatter.rb
30
+ - lib/log4r/formatter/patternformatter.rb
31
+ - lib/log4r/lib/drbloader.rb
32
+ - lib/log4r/lib/xmlloader.rb
33
+ - lib/log4r/log4r-rails.yaml
34
+ - lib/log4r/logevent.rb
35
+ - lib/log4r/logger.rb
36
+ - lib/log4r/loggerfactory.rb
37
+ - lib/log4r/logserver.rb
38
+ - lib/log4r/outputter/bufferedsyslogoutputter.rb
39
+ - lib/log4r/outputter/consoleoutputters.rb
40
+ - lib/log4r/outputter/datefileoutputter.rb
41
+ - lib/log4r/outputter/emailoutputter.rb
42
+ - lib/log4r/outputter/fileoutputter.rb
43
+ - lib/log4r/outputter/iooutputter.rb
44
+ - lib/log4r/outputter/outputter.rb
45
+ - lib/log4r/outputter/outputterfactory.rb
46
+ - lib/log4r/outputter/remoteoutputter.rb
47
+ - lib/log4r/outputter/rollingfileoutputter.rb
48
+ - lib/log4r/outputter/scribeoutputter.rb
49
+ - lib/log4r/outputter/staticoutputter.rb
50
+ - lib/log4r/outputter/syslogoutputter.rb
51
+ - lib/log4r/outputter/udpoutputter.rb
52
+ - lib/log4r/railtie.rb
53
+ - lib/log4r/rdoc/GDC
54
+ - lib/log4r/rdoc/MDC
55
+ - lib/log4r/rdoc/NDC
56
+ - lib/log4r/rdoc/configurator
57
+ - lib/log4r/rdoc/emailoutputter
58
+ - lib/log4r/rdoc/formatter
59
+ - lib/log4r/rdoc/log4jxmlformatter
60
+ - lib/log4r/rdoc/log4r
61
+ - lib/log4r/rdoc/logger
62
+ - lib/log4r/rdoc/logserver
63
+ - lib/log4r/rdoc/outputter
64
+ - lib/log4r/rdoc/patternformatter
65
+ - lib/log4r/rdoc/scribeoutputter
66
+ - lib/log4r/rdoc/syslogoutputter
67
+ - lib/log4r/rdoc/win32eventoutputter
68
+ - lib/log4r/rdoc/yamlconfigurator
69
+ - lib/log4r/repository.rb
70
+ - lib/log4r/staticlogger.rb
71
+ - lib/log4r/version.rb
72
+ - lib/log4r/yamlconfigurator.rb
73
+ - lib/log4rails.rb
74
+ homepage: http://bestmike007.com/log4rails
75
+ licenses: []
76
+ metadata: {}
77
+ post_install_message:
78
+ rdoc_options: []
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 1.9.0
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ requirements: []
92
+ rubyforge_project:
93
+ rubygems_version: 2.4.2
94
+ signing_key:
95
+ specification_version: 4
96
+ summary: Log4rails, better log4r for rails
97
+ test_files: []