about summary refs log tree commit homepage
DateCommit message (Collapse)
2012-11-06clogger 1.2.0 - small bug and compatibility fixes v1.2.0
This release enables the optional C extension on MRI Ruby 2.0.0 (and any other platform that builds C extensions). For rare setups which do not specify a :logger or :path parameter for Clogger#initialize, we are now Rack::Lint compliant and call #write on env["rack.errors"] instead of "<<"
2012-11-06ext: enable C extension under Ruby 2.0.0
Ruby 2.0.0preview1 is out, and we happen to be compatible (with some harmless linker/build warnings)
2012-11-06test_clogger: fix Ruby 1.8 test compatibility
1.8 did not support my preferred way of writing hashes with symbol keys.
2012-11-02avoid calling "<<" on env["rack.errors"]
Rack::Lint::ErrorWrapper forbids the "<<" method. This fallback only comes into play when no log destination (via :logger or :path) is specified and is rarely an issue in real setups.
2012-06-08README: update for Ruby 1.9.3 support status
It never /not/ worked under 1.9.3, but we should keep the website up-to-date.
2012-06-08test case to simulate Rack::BodyProxy usage pattern
The use of Rack::BodyProxy#method_missing causes failures under mainline Ruby 1.9.2 and 1.9.1, but not 1.9.3. This test case exists to document this (now-fixed) bug for users stuck on older Rubies. On a side note, our usage of rb_iterate() should be rewritten to use rb_block_call() as rb_iterate() is deprecated in 1.9. A Ruby 1.9.2-p290 user privately reported this issue.
2012-05-08README: updated to use concise format syntax
It's easier-to-read with the concise syntax.
2011-12-06pkg.mk update
2011-12-05clogger 1.1.0 - more escaping! v1.1.0
This release fixes potential vulnerabilities when escape sequences are viewed in certain terminals. The 0x7F-0xFF byte range is escaped to match behavior of nginx 1.0.9+, as some character sets may have escape characters in that range. $cookie_* values are now escaped to be consistent with the behavior of the $http_cookie value. All users of $cookie_* in their log format must upgrade (of course there may be no Clogger users other than myself, and I don't use $cookie_*)
2011-12-05escape individual cookie values from $cookie_*
These values are untrusted, so if any client sends them to us we must escape them.
2011-12-05escape bytes in the 0x7F-0xFF range, too
This matches the behavior of nginx 1.0.9
2011-07-22use librelist.org for mailing list address
It's clearer that we have zero commercial intent when using a non-profit .org domain for the mailing list.
2011-07-20ext: note we rely on GVL for reentrancy detection
Nothing wrong with the GVL in Ruby 1.9.3; but we'll need to modify our code if it's removed for C extensions.
2011-06-22clogger 1.0.1 - portability fixes v1.0.1
Minor portability fixes noticed on some systems. There is a minor license change, it is now explicitly LGPLv2.1 and LGPLv3 and later versions at the project leader's discretion. It is no longer LGPLv2.1+, so it doesn't give a blank check to the FSF to change the license on us.
2011-06-22ext: fix portability defines for some installs
Some Ruby installs muck up headers/#defines and cause weirdness. We now explicitly define _BSD_SOURCE and include #stdio.h
2011-05-11tests: add full URL example
Could be useful for some folks.
2011-04-26change from LGPLv2.1+ to LGPLv2.1 + LGPLv3
LGPLv4 could be completely different, so we won't give the FSF a blank check to force it upon us.
2011-04-21clogger 1.0.0 - \o/ v1.0.0
* $time_iso8601 added for nginx compatibility * $time_local (without strftime-options) is now locale-independent There's also a minor usability tweak that allows Symbols to be specified as the :format argument, so config.ru can be shortened: before (continues to work with 1.0.0): use Clogger, :format => Clogger::Format::Rack_1_0 after: use Clogger, :format => :Rack_1_0
2011-04-19README: stop promoting strftime()-compatible formats
strftime() isn't locale-independent, so it can lead to inconsistencies in logs.
2011-04-19$time_local and $time_utc are locale-independent
This doesn't apply to people that use strftime()-formats, but that's a minority.
2011-04-16add support for $time_iso8601 format
This appeared in nginx 0.9.6
2011-03-21extconf: unnecessary dir_config statement
Braindamage from back in the day when I didn't understand mkmf
2011-03-16:format may be a Symbol for less typing
This allows using: use Clogger, :format => :Rack_1_0 Instead of: use Clogger, :format => Clogger::Format::Rack_1_0
2011-03-16fix documentation of Clogger.new for :path
Oops
2011-03-15README: misspelled "discusssion"
2011-03-15clogger 0.9.0 - configurable logging for Rack v0.9.0
Under 1.9, we always release the GVL for filesystem operations now to avoid worst case scenarios. This may hurt performance for some folks with bad locking implementations and extremely fast filesystems. A couple of minor cleanups, too.
2011-03-15clogger: remove VERSION constant
People shouldn't care, there have been no backwards-incompatible changes in the UI and we're not a library people write code against.
2011-03-13avoid potential RString -> C-string conversions
Unlikely, but it may make a difference somewhere...
2011-03-13release GVL for filesystem operations
While local filesystems are usually very fast, we are pessimistic and should prepare for worst-case scenarios. This can use rb_thread_io_blocking_region() under Ruby 1.9.3dev.
2011-03-13ext: ensure path is a valid C string
Unlikely, but some app could pass '\0' into us
2011-03-13update pkg.mk
2011-03-04doc: bogomips.org URL diet
Old git URLs still work, but new ones are shorter
2011-03-04ext: avoid potentially unsafe casts with C API
Rubinius may be pickier about what a VALUE is, so we can't safely cast any C address into VALUEs.
2011-01-27pkg.mk: update in case we get rid of C ext
2011-01-21clogger 0.8.0 - delegating away! v0.8.0
Clogger now delegates all unknown methods to the response body in cases where it needs to wrap the response body. This allows apps that use non-standard Rack extensions to continue working. Eric Wong (4): pass along "to_io" calls to the body delegate method_missing calls to the response body pure: simpler autoload trigger switch to pkg.mk for maintenance tasks
2011-01-21switch to pkg.mk for maintenance tasks
I like make :D
2011-01-21pure: simpler autoload trigger
No need to actually create the hash, just load the constant
2011-01-21delegate method_missing calls to the response body
Since we delegated response_to?, we also need to delegate method_missing to the response body in case there are non-standard methods defined outside of Rack.
2011-01-21pass along "to_io" calls to the body
This optimization is used by Rainbows! to pass IO objects to the response body.
2011-01-14clogger 0.7.0 - portability improvements, cleanups v0.7.0
Broken/crazy systems without CLOCK_MONOTONIC (in varying degrees) and/or clock_gettime() should be supported by using gettimeofday(). Thanks to Lawrence Pit for reporting and helping us test. The Clogger::ToPath proxy class is gone, Clogger itself can proxy to_path/close calls correctly to the response body. $time_utc with a default strftime-format is now supported, and time formats can now be arbitrarily long in the C extension.
2011-01-14properly support $time_utc as documented
nginx doesn't have this, only time_local, but we do
2011-01-14handle abitrarily long time formats in C extension
In case some folks need to use insanely long time formats, we'll support them.
2011-01-14RDoc fixups
call-seq is needed to make C functions look good
2011-01-14remove dead RSTRUCT* compatibility macros
The Clogger::ToPath proxy struct class is gone and so is our need to access it.
2011-01-14remove Clogger::ToPath proxy class
We can just make Clogger#respond_to? smarter and forward everything except :close to the body we're proxying.
2011-01-14test_clogger_to_path: do not assume implementation details
We'll be getting rid of an unnecessary wrapper class
2011-01-14another try to fix systems without CLOCK_MONOTONIC
Fix a reversed typedef and also deal with the case where CLOCK_MONOTONIC is a function call and not a constant macro.
2011-01-14another workaround for systems with broken CLOCK_MONOTONIC
This should also detect cases where CLOCK_MONOTONIC is available at build but not at runtime.
2011-01-12attempt to support broken/crazy systems
clock_gettime() is not available on some systems and/or CLOCK_MONOTONIC. This is totally broken considering the POSIX standard was 10 years ago, now. Nothing in gnulib, either, wtf?! http://www.gnu.org/software/gnulib/manual/html_node/clock_005fgettime.html
2011-01-12remove unused function (obj_fileno)