All Versions
Latest Version
Avg Release Cycle
60 days
Latest Release

Changelog History
Page 3

  • v4.1.0 Changes

    May 09, 2017

    โž• Added

    • ๐Ÿ†• New log format customization mechanism. Any element within the log format can be replaced without having to re-implement entire formatter.
    • Apache Kafka Appender.
    • Prototype Syslog CEE format.
    • ๐Ÿ‘ logger#tagged now supports named tags. (Hash)

    ๐Ÿ”„ Changed

    • Elasticsearch now uses a bulk load api to improve throughput. Thank you Xavier Lange
    • ๐Ÿ’Ž Replaced hash arguments with Ruby keyword arguments across all appenders and formatters.
    • โœ‚ Removed deprecated arguments.
    • ๐Ÿ”จ Refactored Syslog appender and moved format code out of appender and into Syslog formatter.
    • When the process exits SemanticLogger.close is now called instead of SemanticLogger.flush. Earlier test fameworks had issues where the at_exit was called and shutdown Semantic Logger before tests were run.

    โฌ†๏ธ Upgrade notes:

    • ๐Ÿšš As noted above deprecated arguments have been removed, so the following code, if any: ๐Ÿ’Ž ~~~ruby$stderr, :warn) ~~~

    Needs to be replaced with keyword arguments: ๐Ÿ’Ž ~~~ruby $stderr, level: :warn)

  • v4.0.0 Changes

    March 02, 2017

    โž• Added

    • ๐ŸŒฒ #backtrace to log the backtrace for a thread.
    • ๐ŸŒฒ named_tags to support hash like tagging of log messages.

    ๐Ÿ”„ Changed

    • ๐Ÿ’Ž Ruby V2.1 is now the minimum runtime version.
    • ๐ŸŽ Switch from Hash arguments to Ruby keyword arguments, for better performance, validation and defaults.
    • ๐Ÿ›ฐ Replaced Logger#with_payload with SemanticLogger.named_tagged.
    • ๐Ÿ›ฐ Replaced Logger#payload with SemanticLogger.named_tags.
    • ๐Ÿ›ฐ Any payload elements passed into the log line must now be specified in a separate :payload tag.

      • For example any occurrences of: ~~~ruby logger.error(message: 'Hello', response: response_message) ~~~
      • Must be changed to use the payload tag:
      logger.error(message: 'Hello', payload: {response: response_message} )
      • Otherwise Ruby will raise the following error:
      ArgumentError: unknown keywords: response
      semantic_logger/lib/semantic_logger/log.rb:65:in `assign'
    • ๐Ÿ”€ For JSON and Hash appender format, payload is now in its own :payload tag instead of being merged into the hash.

    • Text and Color formatters now include named_tags in their output.

    • โฌ†๏ธ MongoDB Appender has been upgraded to support Mongo Ruby Client V2.

    • Replaced hash arguments with keyword arguments.

      • For example, the Bugsnag Appender now only accepts the level as follows: ๐Ÿ’Ž ~~~ruby :info) ~~~

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ป Graylog appender when logger is called with only an exception object.
    • ๐Ÿ’Ž During a backtrace dump, include the current thread on Ruby MRI.

    โฌ‡๏ธ Dropped Support for

    • ๐Ÿš… Rails 3.2
    • ๐Ÿ’Ž Ruby 1.9 & 2.0
    • ๐Ÿ’Ž JRuby 1.7
  • v3.4.1 Changes

    ๐Ÿ›  Fixed

    • Failed to load appender when symbolic name includes an underscore, for example: ๐Ÿ’Ž ~~~ruby SemanticLogger.add_appender(appender: :new_relic) ~~~
  • v3.4.0 Changes

    โž• Added

    • ๐ŸŒฒ Sentry Logging Appender.
    • :metric_amount in JSON and Hash output.
    • โž• Add silence_logger for Active Record's Session Store.
  • v3.3.0 Changes

    โž• Added

    • โž• Add Raw Formatter.
    • โž• Add standard application and host variables for all appenders.
    • โž• Add TCP log appender, with support for SSL connections.
    • โž• Add UDP log appender.

    ๐Ÿ”„ Changed

    • Consolidate formatter argument extraction.
    • โš  Log warning at 1,000 and info at 100 queued messages if logging appenders back up.
    • SemanticLogger::Appender::Base is now SemanticLogger::Subscriber

    ๐Ÿ›  Fixed

    • SemanticLogger.on_metric when using a Symbol was not resolving to the correct namespace.
    • ๐Ÿ‘Œ Support global SemanticLogger.application and in HTTP Appender
  • v3.2.1 Changes

    March 08, 2016

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ Correctly support SSL options when using https with the HTTP Appender.
    • Also affects SplunkHttp and ElasticSearch appenders when using SSL.
  • v3.2.0 Changes

    March 02, 2016

    โž• Added

    • ๐Ÿ†• New Honeybadger appender, care of Chris Lamb.
      • Send log messages to Honeybadger.

    ๐Ÿ”„ Changed

    • โฌ†๏ธ Upgrade native Splunk appender to current API.
    • Cleanup appenders and use should_log?.
    • ๐Ÿšš Moved Thread specific logging methods to global SemanticLogger namespace.
      • SemanticLogger.tagged
      • SemanticLogger.tags
      • SemanticLogger.push_tags
      • SemanticLogger.pop_tags
      • SemanticLogger.fast_tag
    • SemanticLogger.on_metric now takes in addition to a Proc, an object that responds to #call, or a Symbol naming a builtin metrics appender.
      • For example: :new_relic, statsd

    โœ‚ Removed

    • โœ‚ Removed deprecated methods:
      • SemanticLogger::Logger.appenders
      • SemanticLogger::Logger.cache_count
  • v3.1.0 Changes

    February 27, 2016

    โž• Added

    • ๐ŸŒฒ Hash only log message. Example:

    ๐Ÿ’Ž ~~~ruby message: 'Hello', metric: 'user/hello', duration: 25

    - ๐Ÿ’Ž APIs to make `SemanticLogger::Logger` fully compatible with the Ruby `Logger`.
        - `<<`
        - `progname`, `progname=`
        - `sev_threshold`, `sev_threshold=`
        - `formatter`
        - `datetime_format`
        - `close`
        - `reopen`
        - `add`
    - ๐Ÿ†• New Relic and Bugsnag metrics appenders.
        - Send metrics to New Relic or Bugsnag by specifying `:metric` on log entries.
    ### ๐Ÿ”„ Changed
    - ๐Ÿ‘ Replaced `benchmark_info` with better named `measure_info`, etc.
        - Existing `benchmark_...` methods have been retained for backward compatibilty.
    - Break out formatters into their own namespace
        - `SemanticLogger::Formatters::Color`, :color
        - `SemanticLogger::Formatters::Default`, :default
        - `SemanticLogger::Formatters::Json`, :json
    - ๐Ÿ”„ Changed `SemanticLogger.add_appender` to take hash parameters.
        - Deprecated non hash style arguments.
        - For Example:
            - `SemanticLogger.add_appender(file_name: 'development.log', formatter: :color)`
        - See [Appenders](
        - Move AnsiColors into its own module: `SemanticLogger::AnsiColors`
    - ๐Ÿ’… Appenders now use the same hash style arguments as `SemanticLogger.add_appender`.
    - Appenders use the new common formatters where applicable.
    - ๐ŸŽ Appenders now use custom formatters as the `#call` method for better performance over blocks.
    - ๐Ÿ› Bugsnag appender will now forward `:fatal` errors, since some were being ignored and
      not being reported in Bugsnag. Changes in [Rails Semantic Logger](
      allow Rails messages to be sent correctly to Bugsnag.
    - ๐Ÿ’Ž Use Ruby's built-in JSON library
    ### ๐Ÿ›  Fixes
    - Elasticsearch Appender rotates through daily indexes without restart.
  • v3.0.0 Changes

    February 08, 2016

    โž• Added

    • ๐Ÿ†• New Elasticsearch appender.
      • Send log messages directly to Elasticsearch.
      • Viewable and searchable in kibana.
    • ๐Ÿ†• New HTTP(S) appender.
      • Use HTTP POST to forward log messages.
      • By default uses JSON format, and can be customized as needed.
    • ๐Ÿ†• New Graylog appender.
      • Use HTTP POST to forward log messages.
      • By default uses JSON format, and can be customized as needed.
    • Global settings for host and application names that are shared across all appenders:
      • SemanticLogger.application
    • JSON output formatter.

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ All appenders must support :filter, and :levels
    • Syslog appender
      • Use :url instead of :server option.
      • Specify protocol in :uri now instead of separately.
        • 'udp://myloghost:514')
    • ๐Ÿ‘ Better logic to exclude SemanticLogger from the top of the captured backtrace.
    • ๐Ÿ‘ Better error messages when soft dependencies are not present.
  • v2.21.0 Changes

    December 18, 2015

    โž• Added

    • ๐Ÿ–จ Soft load Awesome Print if present to colorize any logged Hash data.
    • fast_tag as a much faster alternative to tagged when adding just a single string to the tag list.
    • ๐ŸŽ Other performance improvements.

    ๐Ÿ›  Fixed

    • ๐ŸŒฒ Correctly log the file name and line number of the log message even when an exception stacktrace is logged.