- The report_event method now accepts a 'user_sid' argument which can be either a sid string or a Win32::Security::SID object. Thanks go to Elias Fr�hner for the patch.
- Renamed the various modules that contain FFI information in order to avoid a namespacing conflict. Thanks go to Bryan McLellan for the spot.
- Removed the helper.rb file which wasn't being used.
- Updated a few tests to not assume there are actually records in the Application event log. Mostly this was for Appveyor.
- Fixed some old code in the read method that was never properly updated. Thanks go to Jo�o Duarte for the spot.
- Fixed function prototype and call for CreateEvent.
- This gem is now signed.
- Any gem related tasks in the Rakefile now assume Rubygems 2.x.
- Added a win32-eventlog.rb file for convenience.
- Added a workaround for a bug in 64-bit JRuby.
- Now rescues LoadError if the wevtapi lib cannot be found. Thanks go to Josh Cooper for the patch.
- Added the read_last_event instance method. This was already in the code as as a private method but it is now public.
- Removed some intermediate variables and properly re-use some memory pointers to be more memory efficient.
- Changed File.exists? to File.exist? everywhere to avoid warnings in Ruby 2.1.
- Now assumes Windows Vista or later and Ruby 1.9.1 or later.
- The code base has been converted to use FFI, and now works with JRuby.
- The report_event method now accepts an array of strings.
- The ERROR, WARN and INFO constants were changed to ERROR_TYPE, WARN_TYPE and INFO_TYPE.
- The rake and ptools gems have been added as development dependencies.
- Fixed the String#nstrip method for Ruby 1.9.x. Thanks go to Jason Bourne for the spot and Ben Jansen for the patch.
- Refactored the Rakefile and tests.
- EventLogStruct's are now frozen on read operations. This is read-only data.
- Added a test to validate that structs are frozen.
- License changed to Artistic 2.0.
- Some gemspec updates; test-unit and ptools are now development dependencies instead of runtime dependencies and the description has been updated.
- Some RDoc updates, including documentation of the event type constants.
- Several RDoc updates for the Win32::MC class.
- Minor refactoring of the test suite.
- Added rake tasks for running the mc or eventlog libraries separately, as well as tasks for running the examples.
- Example programs renamed to avoid any confusion with actual test files.
- Fixed an issue for Windows Vista and later where some event descriptions were missing. This fix requires windows-pr 0.9.3 or later.
- The EventLog#full? method now raises an EventLog::Error if it should fail instead of a StandardError.
- Minor tweak to mc.rb - chomp the input file name if run as a program.
- Added test-unit 2.0.0 or later as a dependency.
- Added ptools as a dependency for the sake of the test suite.
- Renamed the test files to start with 'test_'.
- Removed the ts_all.rb file.
- The private get_description method, which is used internally to read the event log, has been updated to work with 64 bit Windows. The changes needed for this require a more recent windows-pr library, i.e. 0.9.2 or later.
- Now properly separates the string inserts and description in the private method get_last_event. This fixes the description and string_insert properties for both the EventLog#tail and EventLog#notify_change methods.
- Some internal refactoring to use begin/ensure where appropriate.
- Fixed in a bug in the EventLog#read method where a log entry requiring over 64k would fail and spiral into an infinite loop. Thanks go to Stuart Clarke for the spot.
- Improved handling of failed log reading in the read_last_event private method.
- Fixed a bug where you couldn't write to custom (parent) event sources. Thanks go to Tim Uckun for the spot.
- Now handles ParameterMessageFiles, both in the EventLog.add_event_source method and in terms of getting event descriptions properly. Thanks go to botp for spotting the description problem.
- The EventLog.open_backup method handles a block the same way that the EventLog.open method does.
- The EventLog.add_event_source now returns the creation disposition instead of self.
- Reading event logs is now approximately 5-7 times faster!
- Fixed a potential bug where, in rare cases, event descriptions could be overwritten by other event descriptions.
- Fixed a bug where, in unusual cases, there was leading garbage in the event descriptions.
- Fixed two potential issues where reading from remote event log sources could fail either due to permissions (reading DLL's) or because local registry entries didn't necessarily match the remote registry entries. Thanks go to Andrew Garberoglio and Ivan Shiel for the spot.
- The EventLogError class is now EventLog::Error.
- The MCError class is now MC::Error.
- Added a Rakefile with tasks for installation and testing.
- Removed the install.rb file. Installation is now handled by the Rakefile.
- Fixed some bad test cases in tc_eventlog.rb.
- Added some more source comments.
- Updates to the README and MANIFEST file.
- Removed the FORMAT_MESSAGE_FROM_SYSTEM flag to the FormatMessage function in the get_description private method because it could sometimes return bogus information. Thanks go to Greg Holmes for the spot.
- Added the string_inserts member to the EventLogStruct. This contains an array of only the raw string inserts, rather than the entire text message.
- Fixed a bug in the EventLog.read method related to the EVENTLOG_BACKWARDS_READ flag.
- Fixed a bug in the EventLog.read method where the event_type was not being set properly. Thanks go to "TheR" for the spot and the fix.
- Fixed bugs in the EventLog#tail method where it would fail if the log was full and dups would appear.
- Fixed a bug in the EventLog#notify_change method where the handle would die after five or six reads. Thanks go to botp for the spot.
- Now pure Ruby.
- Now includes a gemspec.
- Fixed a major bug the EventLog#tail method where it was reading the log in the wrong order (!!!).
- Fixed a bug in the EventLog#report_event with regards to long category_id's. Actually, this wasn't so much "fixed" as "avoided" by virtue of using a pure Ruby solution.
- Added the EventLog#full? method.
- Documentation updates and corrections, including the tutorial on creating and writing to your own event source.
- If EventLog.new fails, it now raises EventLogError instead of StandardError.
- Added documentation to the eventlog.txt file for EventLog#notify_change.
- Added inline rdoc to the C source code.
- Code cleanup.
- Code now more Unicode friendly, and other cleanup.
- Made the .txt files rdoc friendly, and removed the .rd files.
- Minor adjustments to the test suite.
- Minor modifications to the source to eliminate some warnings that appeared in Ruby 1.8.2 or later, plus other minor tweaks.
- Renamed the sample programs and moved the 'examples' directory to the toplevel directory.
- Made this document rdoc friendly.
- Added the notify_change() and tail() methods.
- Added the write() alias for report_event().
- The read() class and instance methods now return an array of structs if no block is given.
- Added the 'rubymsg.mc' message category file. If installed, this will create a 'RubyMsg' event source for use with win32-service, though you may use it for whatever you wish. See the README for more details.
- Renamed struct back to EventLogStruct - sorry, sorry - I promise I won't change this again.
- Fixed a bug where using EventLog::SEEK_READ did not work properly (thanks Park).
- Added the notify.rb test script under doc/examples.
- Modified the open() and read() class methods to default to "Application" for the default Event source.
- Removed the .html files. You can generate these on your own with rd2.
- Fixed a bug where a segfault would result if an Event Log entry were somehow corrupted. Thanks go again to Joey Gibson for the spot.
- Very minor doc corrections in tutorial.txt and eventlog.txt
- Fixed a bug where some Event Log descriptions were returning nil instead of the actual description. Thanks go to Joey Gibson for the spot.
- Minor test suite and doc additions, including a "future plan" that may be of interest.
- Fixed a bug in the read() method where not all the records were being returned.
- Fixed calls to rb_time_new() - second argument appears to be mandatory as of 1.8.2.
- Renamed struct returned by read() to "EventLog".
- Changed struct members "id" and "type" to "event_id" and "event_type", respectively. This was to avoid any confusion with the builtin Ruby methods of the same name.
- Replaced STR2CSTR() with StringValuePtr(), as the former is deprecated. This means that as of this version, Ruby 1.8.0 or later is required.
- Moved the sample programs to doc/examples.
- The add_event_source() and report_event() methods now accept symbols as well as do key validation.
- Moved the EventLogError class under the Win32 module.
- Normalized the tc_eventlog.rb and tc_mc.rb scripts by making it easier to run them standalone from another directory.
- Minor modification to the build process.
- Added a test_write.rb script for general futzing when it comes to creating and writing events to the log.
- Doc updates, warranty information added.
- Changed the Win32EventLogError class to just EventLogError. I felt the Win32 was redundant given that the class is already under the Win32 module.
- Fixed bug where bogus error messages were returned because I was calling GetLastError() too late.
- Fixed bug where error messages were getting cut off and/or garbled due to \r\n character. (Thanks Park Heesob).
- Added open_backup class method.
- Slightly better handling of the EventLog#close method. Adopted from code previously submitted by Park Heesob.
- Fixed a bug in the (internal) GetUser() function that caused a segfault if there were 250+ records. That function has been greatly simplified.
- Removed the rb_ensure() approach. What I thought was a memory leak was not, in fact, a memory leak. Also, it was slowing down the method considerably.
- Minor test suite update.
- Fixed memory leaks in read() method (Park Heesob).
- Added read() class method (Daniel Berger).
- Test suite and doc additions & updates
- Added the report_event method. You can now write to the event log.
- Added the add_event_source class method, allowing you to register a custom event source.
- Added the win32-mc package to the distribution. This is a simple wrapper to generate .dll files from .mc files.
- Added Event Type constants
- Test suite additions
- Documentation updates and additions, including a small tutorial.
- Fixed the free() call, and added implicit eventlog closing (when the EventLog object is free'd).
- Simplified constants by removing 'EVENTLOG_' portion of name.
- Cleanup in the GetDescription() method, which was causing segfaults in conjunction with TestUnit.
- Minor doc updates and cleanup.
- Initial release