Release 0.10.55 - 2014/10/17

* config: Relax '@' handling in the plugin configuration for backward compatibility

Release 0.10.54 - 2014/10/17

* config: Change v1's non-quoted string literal behaviour to v0's behaviour
* config: Add --use-v0-config for keeping old configuration
* config: Add single quoted literal in v1 configuration
* config: Improve error message of Array / Hash parse error
* input: Reduce shutdown time in some network related plugins when use Cool.io 1.2
* parser: Use ParserError instead of general exception classes
* Remove unused zfile buffer plugin

Release 0.10.53 - 2014/08/21

* in_tail: Fix forget to detach Closer timer object
* in_debug_agent: Fix config_param type of unix_path
* in_syslog: Add include_source_host and source_host_Key options
* config: Dump V1 escaped parameter correctly at start phase
* config: Fix bug for config_param of bool value without defaults
* config: Add 'alias' option to config_section and config_param
* buffer: Add 'disable_retry_limit' option
* engine: Reduce memory usage when retry_limit is large
* parser: Add apache_error format
* supervisor: Dump Fluentd version at dry run mode
* test: InputTestDriver wait 'run' until input plugin emits all test data

Release 0.10.52 - 2014/07/15

* in_tail: Fix typo of warning argument. lb to line
* config: Fix 'uninitialized constant Fluent::Config::V1Parser::URI' error
* config: Reject '@' prefix of parameter name in V1 configuration. @ is reserved prefix.
* config; Accept '#' comment in array and hash types
* parser: Add time_format option to SyslogParser
* parser: SyslogParser now makes ':' optional after pid
* process: Fix 'mutex can't lock' issue of DetachMultiProcessMixin on Ruby 2.x
* Add --without-source option to ignore <source> sections

Release 0.10.51 - 2014/07/04

* in_tail: Fix rotation handling when new file not found
* in_syslog: Change debug log level to warn at pattern mismatch
* formatter: Use localtime by default
* parser: Add SyslogParser
* parser: Add "estimate_current_event" attribute to TextParsers not to set current time into parse result
* config: Add <system> section to set core parameters via configuration file
* test: Support v1 configuration in TestDriver
* Add udp and tcp input plugins

Release 0.10.50 - 2014/06/17

* in_tail: Fix race condition at shutdown
* in_tail: read_from_head now works without pos_file
* in_tail: Fix multiline format parsing without format_firstline
* formatter: Add add_newline option to SingleValueFormatter
* parser: Add block based API to support multi-events parsing
* config: Fix encoding mismatch when @include used in v1
* engine: Serialize shutdown order. Now shutdown input plugins first
* Update rspec to 3.x

Release 0.10.49 - 2014/06/05

* in_http: Add format option to support various input data format
* in_http: Accept json / msgpack array in default format
* in_tail: Print warning message when file not exist with 'read_from_head true'
* out_file: Add append option to disable path increment
* out_file: Add format option to support various output data format
* config: Fix broken 'include' processing in V1 configuration. Now add @include
* fluentd-debug: Fix undefined method 'usage' error when invalid option passed
* supervisor: Fix incorrect --group option handling
* Add TextFormatter module for output plugins

Release 0.10.48 - 2014/05/18

* config: Add inspect method to Section for dumping the status
* test: Fix the regression which forget to initialize $log in fluent/test.rb
* Engine: Remove undocumented legacy plugin load mechanizm

Release 0.10.47 - 2014/05/15

* in_tail: Fix typo in flush_buffer
* in_forward: Add chunk_size_warn_limit and chunk_size_limit for large chunks
* in_monitor_agent: Add /api/config APIs to expose Fluentd configurations
* supervisor: Add Supervisor.default_options to return default Fluentd options
* test: Add DummyLogDevise and improve log handling in tests
* config: Allow empty string value like `tag_mapped` in v1 configuration

Release 0.10.46 - 2014/04/21

* in_tail: Fix typo in rescue for dumping backtrace
* in_forward: Add blocking_timeout option to avoid Cool.io loop stuck in shutdown
* out_forward: Add phi_failure_detector option to disable "The Phi accrual failure detector"
* buf_memory: Add flush_at_shutdown option to discard buffered event at shutdown
* parser: Use Engine.now when time_key is missing in ValuesParser
* parser: TextParser loads fluent/plugin/parser_xxx.rb automatically when 'xxx' format not found
* Fix match cache expiration
* Add new v1 configuration format and --use-v1-config option to enable v1 configuration format
* Add config_section to Configurable to support nested parameters in plugins
* Relax http_parser.rb gem version to support 0.6 series

Release 0.10.45 - 2014/03/28

* in_tail: Merge in_tail_ex and in_tail_multiline features
* in_forward: Add linger_timeout option
* out_exec: Support json and msgpack format
* Engine: Fix signal handling when receives SIGTERM before loop starts
* Use correct out_forward option in fluent.conf with --setup option
* Ignore sigdump exception on signal unsupported environment

Release 0.10.44 - 2014/02/26

* in_forward: Print remote address and port in trace log
* Remove several methods from fluentd-debug to call remote object method directly
* Add --gemfile option to manage Fluentd and plugins using Gemfile and Bundler
* Add <include path /> directive to include the configuration file under the elements
* Add 'ruby' keyword to call Kernel method in configuration DSL
* Relax Cool.io gem version to allow 1.2.x

Release 0.10.43 - 2014/02/03

* Input/Output: Add 'log_level' option to plugins
* parser/in_tail: Fix RegexpParser forget to call configure method
* parser/in_tail: Improve type conversion performance
* in_http: Add add_http_headers option to add HTTP headers to record
* Buffer: Improve submit_buffer throughput using round-robin writer selection
* add sigdump gem to dump useful information via SIGCONT

Release 0.10.42 - 2013/12/25

* parser/in_tail: Add 'types' and related parameters to convert record value type
* in_syslog: Add 'protocol_type' option for TCP support.
* Buffer: Extract 'storable?' method for hook judge mechanizm by 3rd-party buffer plugins.
* Output: Add 'try_flush_interval' parameter for high frequency flush.
  It is undocumented because almost users never need this feature.
* Change configuration unused checking to prevent memory leak when a plugin accesses configuratino keys.

Release 0.10.41 - 2013/12/05

* BufferedOutput: Add 'max_retry_wait' to limit retry interval
* in_exec/object_space/syslog: Improve emit error message
* Log: Add --suppress-repeated-stacktrace option to prevent log size explosion

Release 0.10.40 - 2013/11/08

* Dump gem version of fluent-plugin-xxx and fluent-mixin-xxx
* in_http: Doesn't set REMOTE_ADDR when IO#getpeername failed
* in_tail/parser: Fix RegexpParser which ignores time_format parameter
* in_exec: Catch error and dumps error message in run_periodic
* in_forward: Show error class in the error message
* in_exec/out_exec_filter: Catch more exceptions, not only Errno::ESRCH, at shutdown
* Log: Catch exception for log event handling at shutdown

Release 0.10.39 - 2013/09/18

* out_file: Improve symlink handling with buf_file
* out_copy: Add deep_copy parameter for actual record copy
* in_tail/parser: Add none format for supporting non-parse tailing like fluent-agent-lite
* in_tail/parser: Improve performance using parsed time caching
* Engine: Fix signal related exception in trap context at Ruby 2.0
* buffer: Fix race condition when remove flushed chunk
* add --suppress-config-dump option to disable dump configuration at start

Release 0.10.38 - 2013/08/29

* Fix require related problem in running test

Release 0.10.37 - 2013/08/29

* in_exec: Add format option to support tsv, json and msgpack. Default is tsv
* out_stdout: Add output_type to print non-jsonable object
* Engine: Skip nil record in emit
* Check buffere_path duplication across buffer configurations.
* Add experimental DSL to configuration format

Release 0.10.36 - 2013/07/31

* Log: add class name on each error logs
* out_foward: change log level of node detachment/recovering/standby-failover from info to warn
* out_file: add symlink_path parameter to point to latest written file
* in_forward, in_http, in_unix: add backlog parameter to change resource backlog size
* add --dry-run option to check fluentd setup without actual run
* Fluentd now assumes configuration file written in UTF-8
* update cool.io version to 1.1.1

Release 0.10.35 - 2013/06/12

* Log: emits fluentd's log via background thread
* Log: use #inspect for non to_msgpack-able object in log event processing
* FailureDetector/out_forward: fixed wrong phi calculation
* in_stream: fixed unix domain connection leak when parsing json or msgpack failed
* buf_file/out_file: sets 0644 permission to each created file for preventing
  File.umask(0) effect at daemonize mode

Release 0.10.34 - 2013/06/03

* fluentd: supports --emit-error-log-interval to suppress log messages with the
  same message for a certain seconds
* BufferedOutput: fixed warning messages so that errors with the same meaning
  use the same message
* Log: ignores ThreadError which could happen in signal handler
* Engine: prevents signal handlers from calling stop() method of plugins twice
* MessagePackEventStream/in_forward: doesn't cache MessagePack::Unpacker (if
  it uses msgpack-0.5.5 which doesn't cause performance impact) to not cause
  problems with out_copy
* TextParser/in_tail,in_syslog: 'json' format type removes time key from records
* TextParser/in_tail,in_syslog: raises exception if time_format is set while
  time_key is not set
* in_tail: fixed minor bugs


Release 0.10.33 - 2013/03/28

* added in_monitor_agent
* switched from jeweler to bundler
* updated dependency for msgpack from '~> 0.4.4' to '~> 0.4.4 OR ~> 0.5.4'
* added PluginId module so that in_monitor_agent can search plugins by id
* BufferedOutput: added queued_chunk_flush_interval option to insert delay
time before flushing queued chunks
* BufferedOutput: randomize retry interval to prevent multiple servers from
bursting network traffic at the same time
* Configurable: sets @config instance variable


Release 0.10.32 - 2013/03/04

* in_tail: fixed the nil error problem which occurs with pos_file option
* TextParser/in_tail: supports 'ltsv' (Labeled Tab-Separated Values) format: http://ltsv.org
* #105: TextParser/in_tail: fixed 'nginx' format
* #102: show log level in log messages
* Gemfile: uses https source of rubygems instead of http


Release 0.10.31 - 2013/01/31

* out_forward: supports TCP heartbeat
* in_tail reads rotated files from its head rather than its end when pos_file option is set
* out_/in_ forward set O_NONBLOCK flag to the UDP heartbeat socket
* Improved match cache expiration algorithm


Release 0.10.30 - 2012/12/06

* Shows configuration file at start time
* Changed ruby version dependency from ~> 1.9.2 to => 1.9.2 so that it works
  with ruby-2.0.
* TimeSlicedOutput: overwrites default value of buffer_chunk_limit to 256m.
  fluent-plugin-s3 will be affected.
* TextParser/in_tail: supports 'nginx' preset formats
* in/out_forward and in_syslog: support IPv6
* out_forward: fixed a out of bounds bug


Release 0.10.29 - 2012/11/26

* buf_file: added flush_at_shutdown option to force flush before shuttingdown
* TextParser shows message in warn level if text doesn't match the pattern


Release 0.10.28 - 2012/10/30

* in_http: on_request method can get headers as HTTP_* key and remote address
  as REMOTE_ADDR key of the params argument


Release 0.10.27 - 2012/10/11

* added BufferChunk#unique_id which is an unique identifier of a buffered chunk
* BufferedOutput: show 'temporarily failed' message


Release 0.10.26 - 2012/09/26

* added in_debug_agent plugin and fluent-debug command which enable you to
  gather internal information of running Fluentd process using interactive shell
* supervisor: --user commandline argument also inherits secondary groups (id -G)
* out_forward: supports 'expire_dns_cache' option to set DNS expire time or disable
  caching. Default behavior is 'never expire' which is same as former versions
* out_forward: assumes successful data transfer via TCP as a successful
  heartbeat.
* out_forward: lazier failure detection: default phi_threshold 8 -> 10
* in_forward: uses other nodes aggressively if it couldn't send data to the first
  candidate to not stall during the wait time before detecting failure
* in_forward: fixed shutdown procedure
* in_tail: seeks to the saved position if detected log rotation actually
  didn't rotate the file (meaning inode doesn't change). this change enables
  cronolog to work with Fluentd.
* in_tail: fixed a problem that it couldn't recover from uncaught exceptions
  caused by output plugins
* fluentd command supports '-q' option to decrease log level


Release 0.10.25 - 2012/07/23

* shutdown won't block
* out_exec_filter supports 'child_respawn' option
* in_tail doesn't remove whitespaces
* out_roundrobin supports 'weight' option


Release 0.10.24 - 2012/06/28

* TextParser/in_tail: supports 'tsv' and 'csv' preset formats
* supervisor set FD_CLOEXEC to @wait_daemonize_pipe_w in case the child
process forked during run_configure


Release 0.10.23 - 2012/06/25

* out_exec_filter: show more error messages when child process unexpectedly exited
* in_tail: Added 'apache2' format template which converts fields into integers or nil
* TextParser creates a parser instance for each output for proper configuration
* BufferedOutput: reset @flush_now flag
* changed default buffer limit parameters:
    Fluentd core:
      buffer_chunk_limit 256MB -> 8MB
      buffer_queue_limit 128 -> 256
    buf_memory:
      buffer_chunk_limit 32MB -> 8MB
      buffer_queue_limit 32 -> 64
    out_file:
      buffer_chunk_limit -> 256MB


Release 0.10.22 - 2012/05/02

* Fixed in_tail and TextParser not to raise "time_format is required" error
* out_exec_filter: fixed JSONFormatter to add \n at the end of records
* out_exec_filter: separated {tag_key,time_key,time_format} parameters to
  {in_,out_}{tag_key,time_key,time_format parameters while keeping
  compatibility


Release 0.10.21 - 2012/05/01

* in_tail and TextParser support 'format json'
* in_tail and TextParser support 'time_key' and 'time_format' parameters for 'format json'
* in_tail: improved the file reader not to consume too much memory if the file is huge
* out_stdout: uses logger instead of STDOUT to show records even if Fluentd is daemonized
* Fixed the type of 'retry_wait' parameter of buffered output plugins from 'float' to 'time'
* Fixed owner of log files for log rotation to work properly with --user and --group options


Release 0.10.20 - 2012/04/27

* Fixed Config#to_s
* out_exec_filter: supports 'out_format json' option
* out_exec_filter: supports 'in_format json' option


Release 0.10.19 - 2012/04/17

* Fixed in_syslog
* in_tail: fixed "invalid byte sequence in US-ASCII" error
* in_unix is not obsoleted


Release 0.10.18 - 2012/04/13

* Use Yajl instead of standard json library to avoid encoding problem
* buf_memory: call force_encoding('ASCII-8BIT') to avoid encoding problem


Release 0.10.17 - 2012/04/02

* in_tail: don't ignore last line without LF [#44]
* Added HandleTagNameMixin
* Removed automake/conf style build support
    Maintainig automake/conf style files are complex, but no user. We've decided
    not to have those files anymore. Otherwise it's still used at rpm/deb packaging
    scripts.


Release 0.10.16 - 2012/03/26

* Added in_gc plugin
* Added in_object_space plugin
* Changed dependency yajl-ruby from '~> 1.0.0' to '~> 1.0'


Release 0.10.15 - 2012/03/09

* Added experimental in_status plugin
* out_forward: normalize the phi value of the failure detector into 1sec
* out_forward: improved memory efficiency
* out_forward: use weighted moving average for the phi accrual failure detector


Release 0.10.14 - 2012/03/05

* Show warnings if in_tcp or out_unix is used
* BasicBuffer shows warnings when data.bytesize > @buffer_chunk_limit
* out_forward: randomize roundrobin queue correctly
* Added development dependencies to the gemspec


Release 0.10.13 - 2012/02/21

* Rewrote in_tail
* Fixed SIGUSR1 handler to force flush logs


Release 0.10.12 - 2012/02/13

* Engine shows warnings when emitted record doesn't match any outputs
* in_tail is rewritten to follow symbolic links correctly
* out_forward uses independent default value as 'hard_timeout' parameter


Release 0.10.11 - 2012/02/10

* out_forward supports 'standby' parameter
* out_forward handles 'hard_timeout' correctly


Release 0.10.10 - 2012/02/09

* in_forward and out_forward don't raise exceptions in callback handlers of
  cool.io not to stop Loop#run
* TimeSlicedOutput ignores time_slice_wait if flush_interval is specified
* in_tail follows symbolic links correctly
* in_http supports "Content-Type: application/json"
* TestDriver#run sleeps 0.5 seconds for the out_exec_filter plugin


Release 0.10.9 - 2012/01/19

* Fixed TimeSlicedOutputTestDriver
* Updated cool.io 1.0.0 -> 1.1.0
* TextParser: fixed regexp of syslog parser to work with rsyslog on CentOS
* out_exec_filter: improve performance by using buffering
* out_exec_filter: added num_children parameter
* out_exec_filter: added remove_prefix/add_prefix parameters
* out_tail: show warning if pos_file parameter is not set
* out_copy: fixed problems when event stream is not repeatable


Release 0.10.8 - 2011/12/03

* Added Supervisor: restart process on SIGHUP or unexpected end of process
* Added -i commandline option which allows inline config
* Added TimeSlicedOutputTestDriver
* BufferedOutput outputs 'retry succeeded' message
* Use Gem::Specification instead of Gem.searcher which is obsoleted
* Added BasicBuffer#chunk_limit -> buffer_chunk_limit alias for backward
  compatibility
* buf_file: fixed to work with keys which contains '/'


Release 0.10.7 - 2011/11/16

* Supports multi-threaded on buffered output plugins ('num_threads')
* Supports multi-process on input plugins ('detach_process')
* Added ObjectBufferedOutput
* Ensure to call 'shutdown' method of started plugins
* in_tail supports 'pos_file' option that stores read position to a file


Release 0.10.6 - 2011/11/11

* Fixed --group NAME cmdline argument
* Run configure(conf) after changing user and group
* Fixed SIGHUP handling
* BasicBuffer plugin uses Configurable module
* buf_file uses microseconds + 12 bits random number for unique file name


Release 0.10.5 - 2011/11/08

* Added out_forward, in_forward
* Added out_exec, in_exec
* Added out_exec_filter


Release 0.10.4 - 2011/11/07

* TestDriver uses klass.dup.module_eval instead of inheriting class to
  override methods
* fixed encoding problem of String#[] in FileBufferChunk#<<(data)


Release 0.10.3 - 2011/10/21

  * Supports 'include' in config file
    * Supports "http://" schema
	* Supports wildcards


Release 0.10.2 - 2011/10/18

  * Fixed EventStream#to_msgpack_stream (thanks CkReal)
  * Added gemspec.required_ruby_version = '~> 1.9.2' (thanks sakuro)


Release 0.10.1 - 2011/10/16

  * SetTimeKeyMixin accepts include_time_key parameter
  * SetTagKeyMixin accepts include_tag_key parameter
  * Fixed Makefile.am
  * Fixed MemoryBufferChunk#msgpack_each


Release 0.10.0 - 2011/10/16

  * Removed Event class
    * def format(tag, event) -> format(time, tag, record)
	* def emit(tag, event) -> emit(tag, time, record)
  * Added plugin APIs
    * Added Configurable
    * Added TimeFormatter
    * Added SetTimeKeyMixin
    * Added SetTagKeyMixin
    * Added InputTestDriver
  * Added Gemfile, gemspec and .rvmrc files


Release 0.9.20 - 2011/10/07

  * Config#has_key? sets used flag not to show warning
  * in_tcp supports JSON
  * Depends on Yajl
  * Fixed fluentd -r option
  * Fixed autogen.sh to create plugins directory


Release 0.9.19 - 2011/10/07

  * Secondary outputs work only when error count exceededs retry_limit
  * Secondary outputs retry upto secondary_limit
  * Added Output#secondary_init
  * Added unit test driver for output plugins
  * Added Fluent::Test.test? method
  * Added comparision methods (<=>, ==, eql? and hash) to Event class
  * Added test cases for out_copy, out_roundrobin and out_file


Release 0.9.18 - 2011/10/04

  * Performance improvements
    * in_tcp uses lazy deserialization
	* Engine caches results of Match#match
	* out_file caches results of strftime
  * Fixed TextParser.register_template


Release 0.9.17 - 2011/10/03

  * TimeSlicedOutput caches results of strftime() for performance
  * Fixed TextParser.register_template (thanks eiichiroi)
  * Fixed fluent-cat --port argument to work


Release 0.9.16 - 2011/10/01

  * Fixed it can't use relative path for --plugin command line argument
  * Fixed out_copy to work with non-repeatable event streams


Release 0.9.15 - 2011/09/21

  * Set default encoding to ASCII-8BIT
  * Fixed thread issues in BasicBuffer
  * Performance improvements


Release 0.9.14 - 2011/09/21

  * Fixed to write unexpected error to log files
  * Plugin loader uses GemSpec if it is available to load newer plugin
  * Added Config.bool_value method for plugins


Release 0.9.13 - 2011/09/21

  * Updated out_file plugin
    * Uses localtime by default
    * Uses \t to separate time, tag and JSON.
    * Uses ISO-8601 for the time format


Release 0.9.12 - 2011/09/20

  * Updated out_file plugin
    * Supports log compression
	* Slices log files every day by default


Release 0.9.11 - 2011/09/19

  * Added out_null plugin
  * Added out_roundrobin plugin
  * in_http supports keep-alive
  * in_tcp and in_unix detect network failure


Release 0.9.10 - 2011/09/07

  * Periodic timer enqueues buffer chunks only when queue is empty


Release 0.9.9 - 2011/09/06

  * in_tail strips \n at the end of log line
  * Uses newer one if multiple plugins are found


Release 0.9.8 - 2011/08/16

  * in_http plugin supports 'Expect: 100-continue' header
  * Added --user and --group command line arguments to change privilege
  * Changed default retry_limit parameter from 8 to 17
  * Changed default buffer_chunk_limit parameter from 1m to 16m
  * Changed default buffer_queue_limit parameter from 100 to 64


Release 0.9.7 - 2011/08/06

  * Load plugins named fluent_plugin.rb installed by RubyGems
  * Load plugins located on fluent/plugin/{buf,in,out}_{type} installed by RubyGems
  * Removed out_tdlog plugin to fluent-plugin-td gem


Release 0.9.6 - 2011/08/06

  * Force flush buffered events on SIGUSR1
  * out_tdlog uses event tag for the database and table name
  * Fluent can log Fluent logs
  * Colorize Fluent logs on console
  * Changed default unix domain socket path to /var/run/fluent/fluent.sock
  * Makefile.am and configure.in aware fakeroot


Release 0.9.5 - 2011/07/23

  * Added <secondary> tag that fallbacks to secondary output when it can't
    write to primary output.
  * <match> pattern supports **; matches any fragments recursively.
  * <match> pattern supports {x,y,...}; matches any of the inner patterns.


Release 0.9.4 - 2011/07/22

  * Switched EventMachine to Cool.io
  * in_tail continues to follow file if it is deleted on Linux
  * Added fluentd --setup option that installs sample configuration file
  * Added out_tdlog plugin


Release 0.9.3 - 2011/07/05

  * Disable EventMachine.epoll because it doesn't work correctly on
    Ruby 1.9 with threads
  * in_tcp and in_unix uses EventMachine instead of threads
  * Set BasicSocket.do_not_reverse_lookup = true


Release 0.9.2 - 2011/07/03

  * Added TimeSlicedOutput that splits buffer chunk exactly based on the time
  * Changed structure of buffers from queue to map + queue
  * Show waring if configuration parameters are not used
  * Added out_time_file plugin


Release 0.9.1 - 2011/06/26

  * Added in_tail plugin
  * Added in_syslog plugin
  * Added out_stdout plugin
  * Added out_tcp plugin
  * Added out_unix plugin
  * Improved performance of in_http plugin by replacing WEBrick + thread
     with EventMachine


Release 0.9.0 - 2011/06/20

  * First release

