All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.0.0 - 2021-06-28
- The new configuration option
scrub_safelistreplaces the deprecatedscrub_whitelistconfiguration option, which is now removed. - The
check_ignoreconfiguration option, if defined and containing the name of an invocable function, will now catch thrown\Error-- division by zero, parse and type errors, assertion failures, etc. Before, only thrown\Exceptionwould be caught. - In the event the API rejected an occurrence during a
log()call, and no message was available, the new default message reads "message not set": before this was misspelled as "mesage not set".
- The performance test suite now runs to completion with assertions on the expected run-time performance within GitHub actions. Running these on different hardware configurations may not match the expectations, so care should be taken to match test platform specifications when reporting performance issues. A future version may provide better direction as to the required test platform specifications.
3.0.0-RC2 - 2021-06-01
- Type signatures and strict type enforcement
- Less member variable boilerplate via constructor property promotion
AgentSender::sendBatch()to return-by-reference the results as a new third argument; before the results were returned by value, which was inconsistent with the defined interface
- Missing URL encoding when internally calling the Rollbar
occurrencesAPI
- Spurious use of
Monolog\StreamHandler $isUncaughtparameter onRollbar::log; replace withRollbar::logUncaught- Use of
call_user_funcandcall_user_func_arrayinternally
3.0.0-RC1 - 2021-02-18
- Support for PHP 8
- Type signatures for Serialized handlers
- Compatibility with XDebug 3
- Docker containers for quick interaction: try
composer docker-buildandcomposer docker-run
- Uncaptured local variables when using the
zend.exception_ignore_args=Offengine configuration - Missing historical entries to the changelog (this file)
- Support for PHP 7 and earlier
- Monolog 1 handler
2.1.0 - 2020-07-01
- Added support for PHP 7.3 and 7.4.
2.0.0 - 2019-10-02
The master branch and the v2.x series will continue full support for PHP >= 7.1. Full support for PHP 7.0 will continue in branch v1.x until PHP 7.0 EOL (Jan 1st 2020). Security fixes only support for PHP less than 7 will continue in branch v1.x.
- Make the SDK compatible with Monolog 2.0.0.
1.8.1 - 2019-05-06
- Add monolog dependency #458
- Remove commitizen setup; prefer global usage instead #450
- Standardized dev options: enabled, transmit, output, verbose #456
- Increase memory limits for php5.3 in Travis CI #452
- Make the repo commitizen-friendly #447
- Updated rollbar.js snippet to the latest version (v2.6.1)
- Configurable Exception Raising for rollbar.log #449
- Amended PR: Add to config minimumLevel option #442
1.7.5 - 2019-03-04
- HHVM does not support PHP language anymore #438
- Respect the result of any user-defined error handling #437
1.7.4 - 2019-01-02
- #431 Extra Custom data not showing in Rollbar
1.7.3 - 2019-01-02
- #426 Typo in EncodedPayload->decreaseSize
- #429 Symfony\Component\Debug\Exception\FatalErrorException: Error: Uncaught Exception: Cannot rewind a generator that was already run in /vendor/rollbar/rollbar/src/Utilities.php:102
1.7.2 - 2018-12-17
- #425: StringStrategy.php bug setting $strlen
- #427: Not all keys traversed.
- #424: Truncation constant doesn't seem to match documentation
1.7.1 - 2018-11-12
- Bump version to 1.7.1
1.7.0 - 2018-11-06
- #389 Logger sends context in body and custom
- #413 Duplicated text in error message
- #391 Add max items config option
- #416 Implement cycle checks for serialization
- #418 Add documentation for max_nesting_depth option in the docs
- #414 Allow users to specify a max nesting level
- #404 Performance Benchmark for Rollbar:init()
- #403 Support and test newer HHVM
- #411 Add a full range of HHVM versions to Travis builds
1.6.3 - 2018-09-06
- #404 Performance Banchmark for Rollbar::init(): autodetect_branch config option set to false by default which stops the SDK from performing CPU-time heavy git branch lookup
- removed internal logging to /tmp
- fixed the build for HHVM
1.6.2 - 2018-08-14
- #398 Fix $scrubbedPayload missing definition
- #399 NUL files being written all over the place
1.6.1 - 2018-08-06
- #393 Missed variable $scrubbedPayload definition in send method on FluentSender
1.6.0 - 2018-08-06
- Improved tagging instructions in README.md
- PR 386: Update README.md
- PR 390: Set fingerprint and title using string instead of callback.
- #380 Drop temporary Rollbar\Monolog\Handler\RollbarHandler in favor of the merged pull request in the Monolog repo
- #381 getUserIp looks at HTTP_X_FORWARDED_FOR then overwrites it anyway
- #387 Truncation strategies do not truncate Frame objects
- #350 PHP Interface, log() method isn't handling fingerprint as documented
- #382 default settings for ServerBranch causes error on windows
- #384 Undefined offset when when adding context
- #385 Enhancement: Better argument type information
- #351 Ability to send additional runtime data
1.5.3 - 2018-06-18
- #374 Rollbar fails to get git branch if allow_exec false and no default set
- #379 Stacktrace returns Empty Frames
1.5.2 - 2018-06-11
- #346 Refactor \Rollbar\Defaults
- #330 Rename jsonSerialize methods in all \Rollbar\Payload classes
- #373 Rename object property names to follow an appropriate convention in the Config class
- #338 Rename checkIgnore config option to followo the underscore convention like other options
- #368 Update README.md
- #331 Remove the leftover direct call to json_encode in AgentSender.php
- #361 Add curl option for CA certificate
1.5.1 - 2018-05-20
- #367 Newest version 1.5.0 missing changelog, Notifier version not bumped
- #366 Make the anonymized IP addresses indexable
- Removed
CHANGELOG.mdin favor of using release notes
1.5.0 - 2018-05-17
- #362 - Fix running isolated tests by requiring the Config.php file with ROLLBAR_INCLUDED_ERRNO_BITMASK definition
- #353 - Only collect person.id by default for person tracking
- #355 - Anonymize IP address config option
- #354 - Allow IP collection to be easily turned on and off in config
1.4.1 - 2018-03-17
- Temporarily add
\Rollbar\Monolog\Handler\MonologHandleruntilSeldaek:monologPR 1042 gets merged into theirmaster - Lock Monolog dependency at
^1.23. The implementation of\Monolog\TestCaseclass in their master is currently not stable - Add instructions on using Rollbar with Monolog after bringing the
MonologHandlerinto this repo - Refactor JSON encoding mechanis to limit calls to
json_encodeto minimum with\Rollbar\Payload\EncodedPayload - Optimize performance of
StringsStrategyandFramesStrategytruncation strategies - Add
composer performancecommand to run performance test suite
- Remove
RawStrategyandMinBodyStrategycompletely (they are not adding any value - the same results are achieved by the combination of other strategies)
- Fix for non-encodable values in the payload data. This was occasionally causing
400response codes from the API
- Update code examples in [README.md]
- Clean up
RollbarLoggerinstances after each test in the testsuite so the configuration doesn't persist between test cases
1.4.0 - 2018-02-06
This release refactors error, fatal error and exception handling from the ground up.
- Add internal SDK debugging with
verbosityconfiguration option local_vars_dumpconfiguration option is now enabled by default- Add enable / disable functionality to Rollbar class and
enabledconfiguration option
- Fix a bug where
E_USER_ERRORtype errors were reported twice
- Update rollbar.js snippet to v2.3.6
- Exception traces will now include an additional frame with the file name and line where the Exception was actually thrown
Rollbar's class proxy methods will now return the return value of the proxied method
1.3.6 - 2017-12-02
- Replace a leftover invocation to exec() with shell_exec()
- Eliminate error duplication on PHP 7+ / Symfony environments by expanding ignore to all Throwables 293
1.3.5 - 2017-11-14
- Fix sending $context argument from the log() method with exception logs.
1.3.4 - 2017-11-11
- Increase the minimum version constraint for the monolog/monolog package to support composer --prefer-minimum
- Decrease the minimum version constraint for psr/log package to match the monolog/monolog package in --prefer-minimum
- Add support for dynamic custom data
1.3.3 - 2017-10-27
- Remove fluent/logger from the required section of composer.json
1.3.2 - 2017-09-20
- Performance improvements
- Include request body for PUT requests if
include_raw_request_bodyis true
1.3.1 - 2017-08-02
- Actually change the notifier version number constant
- Remove dependency on rollbar.js through composer
- Stop duplicate logging some errors #240
1.3.0 - 2017-07-31
- all of the senders should return a response #239
- Minor spacing and indentation on Scrubber #234
- Performance fixes #217
- GitHub Issue #225: Allow custom JS addition in RollbarJsHelper #235
- GitHub Issue #227: Add curl_error() to check for log submission failures
- configuration option to disallow calling exec to get git information #223
- GitHub Issue #144: allow passing ROLLBAR_TEST_TOKEN in phpunit arguments #219
- GitHub Issue 229: Make fluentd a suggest requirement rather than mandatory #230
- add an explicit semicolon between snippet and custom js #238
- Github Issue 226: Update rollbar.js code snippet #228
- use the configuration array directly, don't nest it under options #222
1.2.0 - 2017-07-05
- Add the
use_error_reportingoption back: #182 - Add a helper method to inject the javascript snippet into views: #186
- Add option to include some local variables to stack traces: #192
- Address an issue reading from php://input for PHP less than 5.6 and provide a workaround: #181
- Add static helper methods for Level: #210
- Add a whitelist to prevent scrubbing of specific fields: #216
- Allow sampling for exceptions: #215
- No longer ignore the native PHP error handler: #175
- Fix for when
HTTP_X_FORWARDED_PROTOincludes multiple values: #179 - Fix a backwards compatibility bug with
base_api_urlwhich has since been deprecated in favor ofendpoint: #189 - Correctly reverse frames in a stacktrace: #211. NOTE: this behaviour is consistent with this library for versions less than 1.0, we consider it a bug that the frames were in the wrong order for versions 1.0.0 to 1.1.1. However, this change will cause the fingerprints of errors to change and therefore may result in some errors showing up as new when in fact they already existed with the stack trace in the opposite order.
1.1.1 - 2017-05-16
- Forgot to bump the version number in the README and in the Notifier configuration.
1.1.0 - 2017-05-16
This release includes some new features, some improvements to existing functionality, and several bug fixes. Below are the highlights of issues/PRs that are included in this release:
- Fix how include_error_code_context works with defaults #168
- Fix how we handle scrubbing related to query strings so that we don't accidentially urlencode things that should not be, such as sql queries #164
- Bug: infinite loop when previous exception set #158 (@vilius-g)
- Bug: checkIgnore was not getting passed documented arguments #152
- GitHub Issue #38: truncate payload #167
- GitHub Issue #72: status 200 when using set_exception_handler #143
- Move packfire/php5.3-compat from require to suggest in composer.json #169 (@elazar)
- GitHub Issue #102: Support the Forwarded (RFC 7239) header #155
- GitHub Issue #53: Option to capture stack trace in report_message() #145
- Only report legitimate fatal errors during shutdown rather than anything returned by error_get_last(), Fatal handler type check #161 (@vilius-g)
1.0.1 - 2017-05-01
- Update notifier to send the correct version number in the payload
- Bug fix related to scrubbing potential query strings
1.0.0 - 2017-04-28
Almost everything has been refactored or rewritten. The updated README has all of the current information on how to use the notifier. This release includes API that is backwards compatible with 0.18.2, however this is for convenience only and the methods that have changed have been marked deprecated.
0.18.2 - 2016-07-05
- Removed type hinting from RollbarException
- Added configuration switch for disabling UTF-8 sanitization
0.18.0 - 2016-05-26
- Added support for checkIgnore function See #82
0.17.0 - 2016-04-27
- Accidental tag of documentation change. No API change present.
0.16.0 - 2016-04-22
- Added support for reporting errors in Command Line Scripts.
- Added (opt-in) support for capturing line of code and context around that code in stack traces. See #76
- Added Level class with string constants for Level values.
- Fixed the severity level that E_PARSE errors are reproted at. See #75
- Captured \Throwable rather than \Exception if using PHP 7
0.15.0 - 2015-07-28
- Fix bug where
scrub_fieldswere case-sensitive, instead of case-insensitive as the docs say. See #63 - Fix bug where integer 0 keys would always be scrubbed. See #64 and #65
- Fix detection of the current URL when the protocol is
httpsbut noSERVER_PORTis set. See #50
0.14.0 - 2015-06-22
- Fix bug where generated UUIDs could overlap if the application calls
mt_srand()with a predictable value, and then Rollbar methods are called later. Rollbar now callsmt_srand()itself. This shouldn't affect anyone, unless you happen to be relying on the sequence of numbers coming from mt_rand across Rollbar calls.
0.13.0 - 2015-06-16
- Param scrubbing is now applied to query string params inside the request URL. See #59
0.12.1 - 2015-06-04
branchnow defaults to null (meaning it will not be set) instead ofmaster. This fixes a bug where the Rollbar UI wouldn't use the "default branch" setting because it was being overridden by the value sent by rollbar-php. See #58.
0.12.0 - 2015-06-03
- Param scrubbing now accepts a regex string for the key name. Key names starting with
/are assumed to be a regex. - Headers are now scrubbed
- Arrays are recursively scrubbed
0.11.2 - 2015-05-27
- Fix issue where fatal E_PARSE errors were not reported. See #55
0.11.1 - 2015-05-19
- Add in dependency for cURL library to warn users if they do not have the cURL extension installed (#54)
0.11.0 - 2015-04-03
- Added support for nested exceptions. See #51
- Calling report_exception with a non-exception will result in the data being dropped and a message being logged to the Rollbar logger, instead of an empty message being reported
- Exceptions are now sent as
trace_chain, not trace, so any Custom Grouping Rules in the Rollbar UI will need to be updated to usebody.trace_chain.*.in place ofbody.trace.
0.10.0 - 2015-03-30
report_exceptionnow accepts args forextra_dataandpayload_data, providing full access to the Rollbar API. See #47- Added a unit test suite running on Travis CI (running for PHP 5.3 and higher)
- Fix a json_encode warning with utf8 request param keys. See #42
- Moved
rollbar.phpinsidesrc/
0.9.12 - 2015-03-06
- Fix PHP less than 5.4 compatibility. (Regression added in 0.9.11)
0.9.11 - 2015-03-02
- Added proxy support. (#44)
0.9.10 - 2015-02-11
- Add ability to send fingerprint, title, and other advanced payload options in
Rollbar::report_message().
0.9.9 - 2014-09-11
- Fix an error caused when
report_exceptionis called with a non-object (e.g.null).
0.9.8 - 2014-08-28
- Fixes a bug where
iconv()will sometimes throw an error, (#36).
0.9.7 - 2014-07-30
- Force cURL to use IPV4 (
CURLOPT_IPRESOLVE_V4) if supported (#35)
0.9.6 - 2014-07-08
- No longer have
error_reporting()prevent simple log message reports (#33)
- Only define
ROLLBAR_INCLUDED_ERRNO_BITMASKonce to prevent warnings and test framework breakages (#32)
0.9.4 - 2014-06-24
- New
use_error_reportingflag that when enabled will respect the currenterror_reporting()level when deciding to report an error (#29) - Access token no longer required if using the agent handler
0.9.3 - 2014-06-05
- Walk payloads to ensure strings are correctly utf-8 encoded for json encoding
- Append timestamp (in milliseconds) to agent log file names, to prevent collisions.
0.9.1 - 2014-05-29
- Lazy create the agent log file (#22)
0.9.0 - 2014-05-23
- Added
included_errno, which allows specifying which set of error levels to send to Rollbar (instead of everything below a certain level). This replacesmax_errno. - Added a performance optimization which sends the access token as a header.
- Changed the default settings to no longer send E_NOTICE errors.
- Removed the
max_errnoconfiguration option.
0.8.1 - 2014-04-29
- Added support for more seamless configuration on Heroku
0.8.0 - 2014-04-14
- Added ability to disable the notifier's fatal error handler (#18)
0.7.0 - 2014-03-17
- Fix regression introduced in [0.5.6] which would prevent the default php error handler from running, resulting in scripts no longer halting after such errors.
0.6.4 - 2014-03-13
- Composer package definition optimizations
- Use subclass for Ratchetio backwards-compatibility layer instead of a
class_alias
0.6.3 - 2014-03-05
- Fix issue where POST params could get clobbered while scrubbing
- Convert internal methods from
privatetoprotectedfor better extensibility
0.6.2 - 2014-02-04
- Adding "pass" to default scrub fields
0.6.1 - 2014-02-03
- Respect
HTTP_X_FORWARDED_http headers for request url construction
0.6.0 - 2014-01-20
- Don't report errors suppressed with '@' by default
- A UUID is now generated and sent with each item
- Added
code_versionconfiguration setting
- Fix E_WARNING when scrubbing a param that is an array
- Scrub fields from session params too (instead of just POST). Add
csrf_tokenandauth_tokento list of default scrub fields.
0.5.2 - 2013-04-02
- Fix compatibility issue with PHP 5.2.
- Adding ability to write to rollbar-agent files
- Rename to "rollbar"
- Added new default scrub params
0.4.1 - 2013-01-22
- Added optional
extra_dataparam toreport_message()
- Error handler function (
report_php_error) now always returns false, so that the default php error handler still runs. This is a breaking change if your code relied on the old behavior where the error handler did not ever halt script execution.