sgeorgi-logging 1.4.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.
Files changed (72) hide show
  1. data/History.txt +262 -0
  2. data/README.rdoc +115 -0
  3. data/Rakefile +32 -0
  4. data/data/bad_logging_1.rb +13 -0
  5. data/data/bad_logging_2.rb +21 -0
  6. data/data/logging.rb +42 -0
  7. data/data/logging.yaml +63 -0
  8. data/data/simple_logging.rb +13 -0
  9. data/examples/appenders.rb +47 -0
  10. data/examples/classes.rb +41 -0
  11. data/examples/consolidation.rb +83 -0
  12. data/examples/fork.rb +37 -0
  13. data/examples/formatting.rb +51 -0
  14. data/examples/hierarchies.rb +73 -0
  15. data/examples/layouts.rb +48 -0
  16. data/examples/loggers.rb +29 -0
  17. data/examples/names.rb +43 -0
  18. data/examples/simple.rb +17 -0
  19. data/lib/logging.rb +528 -0
  20. data/lib/logging/appender.rb +260 -0
  21. data/lib/logging/appenders.rb +137 -0
  22. data/lib/logging/appenders/buffering.rb +178 -0
  23. data/lib/logging/appenders/console.rb +60 -0
  24. data/lib/logging/appenders/email.rb +75 -0
  25. data/lib/logging/appenders/file.rb +75 -0
  26. data/lib/logging/appenders/growl.rb +197 -0
  27. data/lib/logging/appenders/io.rb +69 -0
  28. data/lib/logging/appenders/rolling_file.rb +327 -0
  29. data/lib/logging/appenders/string_io.rb +68 -0
  30. data/lib/logging/appenders/syslog.rb +210 -0
  31. data/lib/logging/config/configurator.rb +188 -0
  32. data/lib/logging/config/yaml_configurator.rb +191 -0
  33. data/lib/logging/layout.rb +117 -0
  34. data/lib/logging/layouts.rb +47 -0
  35. data/lib/logging/layouts/basic.rb +32 -0
  36. data/lib/logging/layouts/parseable.rb +211 -0
  37. data/lib/logging/layouts/pattern.rb +311 -0
  38. data/lib/logging/log_event.rb +45 -0
  39. data/lib/logging/logger.rb +504 -0
  40. data/lib/logging/repository.rb +232 -0
  41. data/lib/logging/root_logger.rb +61 -0
  42. data/lib/logging/stats.rb +278 -0
  43. data/lib/logging/utils.rb +201 -0
  44. data/lib/spec/logging_helper.rb +34 -0
  45. data/test/appenders/test_buffered_io.rb +176 -0
  46. data/test/appenders/test_console.rb +66 -0
  47. data/test/appenders/test_email.rb +170 -0
  48. data/test/appenders/test_file.rb +95 -0
  49. data/test/appenders/test_growl.rb +127 -0
  50. data/test/appenders/test_io.rb +129 -0
  51. data/test/appenders/test_rolling_file.rb +209 -0
  52. data/test/appenders/test_syslog.rb +194 -0
  53. data/test/benchmark.rb +86 -0
  54. data/test/config/test_configurator.rb +70 -0
  55. data/test/config/test_yaml_configurator.rb +40 -0
  56. data/test/layouts/test_basic.rb +42 -0
  57. data/test/layouts/test_json.rb +112 -0
  58. data/test/layouts/test_pattern.rb +198 -0
  59. data/test/layouts/test_yaml.rb +121 -0
  60. data/test/setup.rb +43 -0
  61. data/test/test_appender.rb +152 -0
  62. data/test/test_consolidate.rb +46 -0
  63. data/test/test_layout.rb +110 -0
  64. data/test/test_log_event.rb +80 -0
  65. data/test/test_logger.rb +699 -0
  66. data/test/test_logging.rb +267 -0
  67. data/test/test_repository.rb +158 -0
  68. data/test/test_root_logger.rb +81 -0
  69. data/test/test_stats.rb +274 -0
  70. data/test/test_utils.rb +116 -0
  71. data/version.txt +1 -0
  72. metadata +227 -0
data/History.txt ADDED
@@ -0,0 +1,262 @@
1
+ == 1.4.2 / 2010-04-18
2
+
3
+ Bug Fixes
4
+ - missing require for fileutils
5
+
6
+ == 1.4.1 / 2010-03-23
7
+
8
+ Bug Fixes
9
+ - flock(LOCK_UN) was causing errors on windows [issue 4]
10
+
11
+ == 1.4.0 / 2010-03-16
12
+
13
+ Minor Enhancements
14
+ - Compatibility with the Rack::CommonLogger
15
+
16
+ == 1.3.0 / 2009-12-18
17
+
18
+ Minor Enhancements
19
+ - Using copy/truncate semantics for a faster RollingFile appender
20
+ - Global reopen method for using Logging in forked environments
21
+ - RollingFile appender can use date stamps instead of numbers
22
+
23
+ == 1.2.3 / 2009-12-01
24
+
25
+ 1 bug fix
26
+ - Using a reentrant mutex to avoid deadlock in some Rails applications
27
+
28
+ == 1.2.2 / 2009-08-18
29
+
30
+ 1 minor enhancement
31
+ - Created a reset method for the logging framework
32
+
33
+ == 1.2.1 / 2009-08-14
34
+
35
+ 1 bug fix
36
+ - Using a bug-fix version of little-plugger
37
+
38
+ == 1.2.0 / 2009-08-14
39
+
40
+ 2 minor enhancements
41
+ - Added a gem based plugin system
42
+ - LogEvent is now a struct (slightly faster)
43
+
44
+ == 1.1.4 / 2009-05-28
45
+
46
+ 1 minor enhancement
47
+ - Added a Logging.shutdown method to close out all appenders
48
+
49
+ == 1.1.3 / 2009-05-13
50
+
51
+ 1 bug fix
52
+ - Fixing an alias bug on the JRuby platform
53
+
54
+ == 1.1.2 / 2009-05-05
55
+
56
+ 1 minor enhancement
57
+ - Added two new require methods to Kernel
58
+
59
+ == 1.1.1 / 2009-04-30
60
+
61
+ 1 minor enhancement
62
+ - Added a 'filename' method to the file appenders
63
+
64
+ == 1.1.0 / 2009-04-21
65
+
66
+ 3 minor enhancements
67
+ - Added a "global" logger method
68
+ - Loggers can be consolidated on a per-namespace basis
69
+ - Added a precision to the logger name specifier in the pattern layout
70
+ [addresses http://github.com/TwP/logging/issues#issue/1]
71
+
72
+ == 1.0.0 / 2009-04-17
73
+
74
+ 2 major enhancements
75
+ - Refactored access to the appenders
76
+ - Created a much cleaner way to initialize the logging framework
77
+ 3 minor enhancements
78
+ - Added a YAML layout option
79
+ - Added a JSON layout option
80
+ - Cration of an "examples" directory
81
+ 1 bug fix
82
+ - Logging initialization happens implicitly when a logger, layout, or
83
+ appender is created
84
+
85
+ == 0.9.8 / 2009-04-11
86
+
87
+ 2 minor enhancements
88
+ - Adding a to_s method to the StringIo appender's StringIO object
89
+ - Added a Spec::LoggingHelper class that will capture log messages
90
+ when using rspec style testing
91
+
92
+ == 0.9.7 / 2009-03-17
93
+
94
+ 1 minor enhancement
95
+ - Added a StringIO appender
96
+ 1 bug fix
97
+ - Handling objects that cannot be dumped via YAML [Tim Galeckas]
98
+
99
+ == 0.9.6 / 2009-02-02
100
+
101
+ 2 minor enhancements
102
+ - Ruby 1.9.1 compatability
103
+ - JRuby 1.1.5 compatability
104
+
105
+ == 0.9.5 / 2009-01-25
106
+
107
+ 2 minor enhancements
108
+ - The pattern layout can output the current thread name
109
+ if set using Thread.current[:name] [valodzka]
110
+ - Added buffered logging to all IO based loggers
111
+ (console, file, rolling file)
112
+ 1 bug fix
113
+ - Uncaught TimeoutError in the e-mail appender
114
+
115
+ == 0.9.4 / 2008-10-04
116
+
117
+ 2 minor enhancements
118
+ - Flag to suppress exception backtraces from being logged
119
+ - Cleaning up color codes on Growl output
120
+ 4 bug fixes
121
+ - Child loggers were not being found in some cases
122
+ - RollingFileAppender fails to reopen the log file if
123
+ the log file is deleted.
124
+ - Fixed a copy/paste error in the YAML configurator
125
+ - Bug in the configurator where a nil object was being used
126
+
127
+ == 0.9.3 / 2008-09-12
128
+
129
+ 2 minor enhancement
130
+ - Added a class for tracking basic statistics
131
+ - Will use the 'fastthread' gem if availble
132
+
133
+ == 0.9.2 / 2008-09-03
134
+
135
+ 2 bug fixes
136
+ - Properly generates logger names for anonymous classes and
137
+ modules and meta-classes
138
+ - Fixed the rescue clause when 'turn' cannot be required
139
+
140
+ == 0.9.1 / 2008-08-14
141
+
142
+ 1 minor enhancement
143
+ - added a method to show the logging configuration
144
+ 2 bug fixes
145
+ - checking for sync method on the IO streams before calling
146
+ - fixed the internal logging levels
147
+
148
+ == 0.9.0 / 2008-07-16
149
+
150
+ 2 minor enhancement
151
+ - Exceptions from appenders are captured and logged
152
+ - Internal logger for the Logging framework (disabled by default)
153
+ - Added a DSL configuration format (more readable than YAML)
154
+ 1 bug fix
155
+ - Modules could not have their own logger instance
156
+
157
+ == 0.8.0 / 2008-07-02
158
+
159
+ 1 minor enhancement
160
+ - Setting the log level of a parent will cause this level to
161
+ be propagated to the children
162
+ 1 bug fix
163
+ - Fixed error with the e-mail appender and missing hostname
164
+
165
+ == 0.7.1 / 2008-02-25
166
+
167
+ 1 minor enhancement
168
+ - Removed dependency on the Lockfile gem (brought the ruby
169
+ file into the logging/stelan directory)
170
+ 1 bug fix
171
+ - Fixed bug with age based rolling: was not multi-process safe
172
+
173
+ == 0.7.0 / 2008-02-12
174
+
175
+ 1 major enhancement
176
+ - Rails compatibility
177
+ * renamed Logger#add method to Logger#add_appenders
178
+ * renamed Logger#remove method to Logger#remove_appenders
179
+ * renamed Logger#clear method to Logger#clear_appenders
180
+ * added a new Logger#add method that conforms to the calling
181
+ semantics of the Ruby stdlib Logger
182
+
183
+ 2 minor enhancements
184
+ - Speed improvements and test coverage
185
+ - Created a top-level Logging.init method that is used to
186
+ define the default logging levels
187
+
188
+ 1 bug fix
189
+ - Tweaked windows detection code
190
+
191
+ == 0.6.3 / 2008-02-08
192
+
193
+ 2 minor enhancements
194
+ - YAML configuration now supports multiple keys -- i.e. development
195
+ or production or whatever
196
+ - Reorganized a lot of files so that requiring files is cleaner and
197
+ more deterministic
198
+
199
+ == 0.6.2 / 2008-02-06
200
+
201
+ 2 bug fixes
202
+ - An extra e-mail was being pushed out when the e-mail
203
+ appender was closed
204
+ - Created an at_exit handler to close all appenders
205
+
206
+ == 0.6.1 / 2008-01-01
207
+
208
+ 1 bug fix
209
+ - Fixed include order to avoid double loading when testing
210
+
211
+ == 0.6.0 / 2007-12-26
212
+
213
+ * Using the new 'getopt' method for handling option hashes
214
+ * Rolling file appender is safe for multiple processes
215
+ * Added an e-mail appender from Jeremy Hinegardner
216
+ * Updated tests for the appenders
217
+
218
+ == 0.5.3 / 2007-12-08
219
+
220
+ * Fixed the quoting for messages sent to the growl appender
221
+
222
+ == 0.5.2 / 2007-11-28
223
+
224
+ * Updated the library to work with Ruby 1.9
225
+ * Fixed coalescing with the growl appender
226
+
227
+ == 0.5.1 / 2007-11-18
228
+
229
+ * Fixed a bug on Windows when attempting to load the syslog library
230
+
231
+ == 0.5.0 / 2007-11-18
232
+
233
+ * Added the ability to log via the syslog daemon
234
+ * Can send messages to the Growl notification system on Mac OS X
235
+ * The Growl appender can coalesce messages of the same title/priority
236
+
237
+ == 0.4.0 / 2007-03-21
238
+
239
+ * Added a microsecond flag to the Pattern layout
240
+ * All appenders write immediately upon receipt of a logging event
241
+ * Added a basic logging method that returns a logger object configured in
242
+ the same manner as the standard Ruby logger
243
+ * Fixed a bug caused by nil log messages
244
+
245
+ == 0.3.1 / 2007-02-08
246
+
247
+ * Bugfix Release
248
+
249
+ == 0.3.0 / 2007-02-01
250
+
251
+ * Remove the ability to log multiple objects from a single log method call
252
+
253
+ == 0.2.0 / 2007-01-29
254
+
255
+ * The "once every four years" release
256
+ * Storage and retrieval of appenders by name
257
+ * YAML configuration support
258
+ * Rolling file appender
259
+
260
+ == 0.1.0 / 2007-01-12
261
+
262
+ * Birthday!
data/README.rdoc ADDED
@@ -0,0 +1,115 @@
1
+ Logging
2
+ by Tim Pease
3
+
4
+ * {Homepage}[http://logging.rubyforge.org/]
5
+ * {Rubyforge Project}[http://rubyforge.org/projects/logging]
6
+ * email tim dot pease at gmail dot com
7
+
8
+ == DESCRIPTION
9
+
10
+ Logging is a flexible logging library for use in Ruby programs based on the
11
+ design of Java's log4j library. It features a hierarchical logging system,
12
+ custom level names, multiple output destinations per log event, custom
13
+ formatting, and more.
14
+
15
+ == INSTALL
16
+
17
+ sudo gem install logging
18
+
19
+ == EXAMPLE
20
+
21
+ This example configures a logger to output messages in a format similar to the
22
+ core ruby Logger class. Only log messages that are warnings or higher will be
23
+ logged.
24
+
25
+ require 'logging'
26
+
27
+ logger = Logging.logger(STDOUT)
28
+ logger.level = :warn
29
+
30
+ logger.debug "this debug message will not be output by the logger"
31
+ logger.warn "this is your last warning"
32
+
33
+ In this example, a single logger is crated that will append to STDOUT and to a
34
+ file. Only log messages that are informational or higher will be logged.
35
+
36
+ require 'logging'
37
+
38
+ logger = Logging.logger['example_logger']
39
+ logger.add_appenders(
40
+ Logging.appenders.stdout,
41
+ Logging.appenders.file('example.log')
42
+ )
43
+ logger.level = :info
44
+
45
+ logger.debug "this debug message will not be output by the logger"
46
+ logger.info "just some friendly advice"
47
+
48
+ The Logging library was created to allow each class in a program to have its
49
+ own configurable logger. The logging level for a particular class can be
50
+ changed independently of all other loggers in the system. This example shows
51
+ the recommended way of accomplishing this.
52
+
53
+ require 'logging'
54
+
55
+ Logging.logger['FirstClass'].level = :warn
56
+ Logging.logger['SecondClass'].level = :debug
57
+
58
+ class FirstClass
59
+ def initialize
60
+ @log = Logging.logger[self]
61
+ end
62
+
63
+ def some_method
64
+ @log.debug "some method was called on #{self.inspect}"
65
+ end
66
+ end
67
+
68
+ class SecondClass
69
+ def initialize
70
+ @log = Logging.logger[self]
71
+ end
72
+
73
+ def another_method
74
+ @log.debug "another method was called on #{self.inspect}"
75
+ end
76
+ end
77
+
78
+ There are many more examples in the "examples" folder of the logging
79
+ package. The recommended reading order is the following:
80
+
81
+ simple.rb
82
+ loggers.rb
83
+ classes.rb
84
+ hierarchies.rb
85
+ names.rb
86
+ appenders.rb
87
+ layouts.rb
88
+ formatting.rb
89
+ consolidation.rb
90
+
91
+ == NOTES
92
+
93
+ Although Logging is intended to supersede Log4r, it is not a one-to-one
94
+ replacement for the Log4r library. Most notably is the difference in namespaces
95
+ -- Logging vs. Log4r. Other differences include renaming Log4r::Outputter to
96
+ Logging::Appender and renaming Log4r::Formatter to Logging::Layout. These
97
+ changes were meant to bring the Logging class names more in line with the Log4j
98
+ class names.
99
+
100
+ == REQUIREMENTS
101
+
102
+ Logging requires the "lockfile" gem to run and the "flexmock" gem to run the
103
+ tests"
104
+
105
+ == DEVELOPMENT REQUIREMENTS
106
+
107
+ The Logging source code relies on the Mr Bones project for default rake tasks.
108
+ You will need to install the Mr Bones gem if you want to build or test the
109
+ logging gem.
110
+
111
+ gem install bones
112
+
113
+ == LICENSE
114
+
115
+ Ruby
data/Rakefile ADDED
@@ -0,0 +1,32 @@
1
+
2
+ begin
3
+ require 'bones'
4
+ rescue LoadError
5
+ abort '### please install the "bones" gem ###'
6
+ end
7
+
8
+ task :default => 'test:run'
9
+ task 'gem:release' => 'test:run'
10
+
11
+ Bones {
12
+ name 'logging'
13
+ summary 'A flexible and extendable logging library for Ruby'
14
+ authors 'Tim Pease'
15
+ email 'tim.pease@gmail.com'
16
+ url 'http://rubygems.org/gems/logging'
17
+ readme_file 'README.rdoc'
18
+ ignore_file '.gitignore'
19
+
20
+ rdoc.exclude << '^data'
21
+ rdoc.include << '^examples/.*\.rb'
22
+ #rdoc.dir = 'doc/rdoc'
23
+
24
+ use_gmail
25
+
26
+ depend_on 'little-plugger'
27
+
28
+ depend_on 'flexmock', :development => true
29
+ depend_on 'bones-git', :development => true
30
+ depend_on 'bones-extras', :development => true
31
+ }
32
+
@@ -0,0 +1,13 @@
1
+
2
+ Logging.configure {
3
+
4
+ logger(:root) {
5
+ level :info
6
+ appenders 'bad'
7
+ }
8
+
9
+ appender('bad') {
10
+ type 'FooBar'
11
+ }
12
+
13
+ } # logging configuration
@@ -0,0 +1,21 @@
1
+
2
+ Logging.configure {
3
+
4
+ logger(:root) {
5
+ level :info
6
+ appenders 'logfile'
7
+ }
8
+
9
+ appender('logfile') {
10
+ type 'File'
11
+ level 'DEB'
12
+ filename 'tmp/temp.log'
13
+ truncate true
14
+ layout {
15
+ type 'BadLayout'
16
+ date_method 'to_s'
17
+ pattern '[%d] %l %c : %m\n'
18
+ }
19
+ }
20
+
21
+ } # logging configuration