1### 2.5.0 (2022-04-08) 2 3* Added `callType` to IntrospectionProcessor (#1612) 4* Fixed AsMonologProcessor syntax to be compatible with PHP 7.2 (#1651) 5 6### 2.4.0 (2022-03-14) 7 8 * Added [`Monolog\LogRecord`](src/Monolog/LogRecord.php) interface that can be used to type-hint records like `array|\Monolog\LogRecord $record` to be forward compatible with the upcoming Monolog 3 changes 9 * Added `includeStacktraces` constructor params to LineFormatter & JsonFormatter (#1603) 10 * Added `persistent`, `timeout`, `writingTimeout`, `connectionTimeout`, `chunkSize` constructor params to SocketHandler and derivatives (#1600) 11 * Added `AsMonologProcessor` PHP attribute which can help autowiring / autoconfiguration of processors if frameworks / integrations decide to make use of it. This is useless when used purely with Monolog (#1637) 12 * Added support for keeping native BSON types as is in MongoDBFormatter (#1620) 13 * Added support for a `user_agent` key in WebProcessor, disabled by default but you can use it by configuring the $extraFields you want (#1613) 14 * Added support for username/userIcon in SlackWebhookHandler (#1617) 15 * Added extension points to BrowserConsoleHandler (#1593) 16 * Added record message/context/extra info to exceptions thrown when a StreamHandler cannot open its stream to avoid completely losing the data logged (#1630) 17 * Fixed error handler signature to accept a null $context which happens with internal PHP errors (#1614) 18 * Fixed a few setter methods not returning `self` (#1609) 19 * Fixed handling of records going over the max Telegram message length (#1616) 20 21### 2.3.5 (2021-10-01) 22 23 * Fixed regression in StreamHandler since 2.3.3 on systems with the memory_limit set to >=20GB (#1592) 24 25### 2.3.4 (2021-09-15) 26 27 * Fixed support for psr/log 3.x (#1589) 28 29### 2.3.3 (2021-09-14) 30 31 * Fixed memory usage when using StreamHandler and calling stream_get_contents on the resource you passed to it (#1578, #1577) 32 * Fixed support for psr/log 2.x (#1587) 33 * Fixed some type annotations 34 35### 2.3.2 (2021-07-23) 36 37 * Fixed compatibility with PHP 7.2 - 7.4 when experiencing PCRE errors (#1568) 38 39### 2.3.1 (2021-07-14) 40 41 * Fixed Utils::getClass handling of anonymous classes not being fully compatible with PHP 8 (#1563) 42 * Fixed some `@inheritDoc` annotations having the wrong case 43 44### 2.3.0 (2021-07-05) 45 46 * Added a ton of PHPStan type annotations as well as type aliases on Monolog\Logger for Record, Level and LevelName that you can import (#1557) 47 * Added ability to customize date format when using JsonFormatter (#1561) 48 * Fixed FilterHandler not calling reset on its internal handler when reset() is called on it (#1531) 49 * Fixed SyslogUdpHandler not setting the timezone correctly on DateTimeImmutable instances (#1540) 50 * Fixed StreamHandler thread safety - chunk size set to 2GB now to avoid interlacing when doing concurrent writes (#1553) 51 52### 2.2.0 (2020-12-14) 53 54 * Added JSON_PARTIAL_OUTPUT_ON_ERROR to default json encoding flags, to avoid dropping entire context data or even records due to an invalid subset of it somewhere 55 * Added setDateFormat to NormalizerFormatter (and Line/Json formatters by extension) to allow changing this after object creation 56 * Added RedisPubSubHandler to log records to a Redis channel using PUBLISH 57 * Added support for Elastica 7, and deprecated the $type argument of ElasticaFormatter which is not in use anymore as of Elastica 7 58 * Added support for millisecond write timeouts in SocketHandler, you can now pass floats to setWritingTimeout, e.g. 0.2 is 200ms 59 * Added support for unix sockets in SyslogUdpHandler (set $port to 0 to make the $host a unix socket) 60 * Added handleBatch support for TelegramBotHandler 61 * Added RFC5424e extended date format including milliseconds to SyslogUdpHandler 62 * Added support for configuring handlers with numeric level values in strings (coming from e.g. env vars) 63 * Fixed Wildfire/FirePHP/ChromePHP handling of unicode characters 64 * Fixed PHP 8 issues in SyslogUdpHandler 65 * Fixed internal type error when mbstring is missing 66 67### 2.1.1 (2020-07-23) 68 69 * Fixed removing of json encoding options 70 * Fixed type hint of $level not accepting strings in SendGridHandler and OverflowHandler 71 * Fixed SwiftMailerHandler not accepting email templates with an empty subject 72 * Fixed array access on null in RavenHandler 73 * Fixed unique_id in WebProcessor not being disableable 74 75### 2.1.0 (2020-05-22) 76 77 * Added `JSON_INVALID_UTF8_SUBSTITUTE` to default json flags, so that invalid UTF8 characters now get converted to [�](https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character) instead of being converted from ISO-8859-15 to UTF8 as it was before, which was hardly a comprehensive solution 78 * Added `$ignoreEmptyContextAndExtra` option to JsonFormatter to skip empty context/extra entirely from the output 79 * Added `$parseMode`, `$disableWebPagePreview` and `$disableNotification` options to TelegramBotHandler 80 * Added tentative support for PHP 8 81 * NormalizerFormatter::addJsonEncodeOption and removeJsonEncodeOption are now public to allow modifying default json flags 82 * Fixed GitProcessor type error when there is no git repo present 83 * Fixed normalization of SoapFault objects containing deeply nested objects as "detail" 84 * Fixed support for relative paths in RotatingFileHandler 85 86### 2.0.2 (2019-12-20) 87 88 * Fixed ElasticsearchHandler swallowing exceptions details when failing to index log records 89 * Fixed normalization of SoapFault objects containing non-strings as "detail" in LineFormatter 90 * Fixed formatting of resources in JsonFormatter 91 * Fixed RedisHandler failing to use MULTI properly when passed a proxied Redis instance (e.g. in Symfony with lazy services) 92 * Fixed FilterHandler triggering a notice when handleBatch was filtering all records passed to it 93 * Fixed Turkish locale messing up the conversion of level names to their constant values 94 95### 2.0.1 (2019-11-13) 96 97 * Fixed normalization of Traversables to avoid traversing them as not all of them are rewindable 98 * Fixed setFormatter/getFormatter to forward to the nested handler in FilterHandler, FingersCrossedHandler, BufferHandler, OverflowHandler and SamplingHandler 99 * Fixed BrowserConsoleHandler formatting when using multiple styles 100 * Fixed normalization of exception codes to be always integers even for PDOException which have them as numeric strings 101 * Fixed normalization of SoapFault objects containing non-strings as "detail" 102 * Fixed json encoding across all handlers to always attempt recovery of non-UTF-8 strings instead of failing the whole encoding 103 * Fixed ChromePHPHandler to avoid sending more data than latest Chrome versions allow in headers (4KB down from 256KB). 104 * Fixed type error in BrowserConsoleHandler when the context array of log records was not associative. 105 106### 2.0.0 (2019-08-30) 107 108 * BC Break: This is a major release, see [UPGRADE.md](UPGRADE.md) for details if you are coming from a 1.x release 109 * BC Break: Logger methods log/debug/info/notice/warning/error/critical/alert/emergency now have explicit void return types 110 * Added FallbackGroupHandler which works like the WhatFailureGroupHandler but stops dispatching log records as soon as one handler accepted it 111 * Fixed support for UTF-8 when cutting strings to avoid cutting a multibyte-character in half 112 * Fixed normalizers handling of exception backtraces to avoid serializing arguments in some cases 113 * Fixed date timezone handling in SyslogUdpHandler 114 115### 2.0.0-beta2 (2019-07-06) 116 117 * BC Break: This is a major release, see [UPGRADE.md](UPGRADE.md) for details if you are coming from a 1.x release 118 * BC Break: PHP 7.2 is now the minimum required PHP version. 119 * BC Break: Removed SlackbotHandler, RavenHandler and HipChatHandler, see [UPGRADE.md](UPGRADE.md) for details 120 * Added OverflowHandler which will only flush log records to its nested handler when reaching a certain amount of logs (i.e. only pass through when things go really bad) 121 * Added TelegramBotHandler to log records to a [Telegram](https://core.telegram.org/bots/api) bot account 122 * Added support for JsonSerializable when normalizing exceptions 123 * Added support for RFC3164 (outdated BSD syslog protocol) to SyslogUdpHandler 124 * Added SoapFault details to formatted exceptions 125 * Fixed DeduplicationHandler silently failing to start when file could not be opened 126 * Fixed issue in GroupHandler and WhatFailureGroupHandler where setting multiple processors would duplicate records 127 * Fixed GelfFormatter losing some data when one attachment was too long 128 * Fixed issue in SignalHandler restarting syscalls functionality 129 * Improved performance of LogglyHandler when sending multiple logs in a single request 130 131### 2.0.0-beta1 (2018-12-08) 132 133 * BC Break: This is a major release, see [UPGRADE.md](UPGRADE.md) for details if you are coming from a 1.x release 134 * BC Break: PHP 7.1 is now the minimum required PHP version. 135 * BC Break: Quite a few interface changes, only relevant if you implemented your own handlers/processors/formatters 136 * BC Break: Removed non-PSR-3 methods to add records, all the `add*` (e.g. `addWarning`) methods as well as `emerg`, `crit`, `err` and `warn` 137 * BC Break: The record timezone is now set per Logger instance and not statically anymore 138 * BC Break: There is no more default handler configured on empty Logger instances 139 * BC Break: ElasticSearchHandler renamed to ElasticaHandler 140 * BC Break: Various handler-specific breaks, see [UPGRADE.md](UPGRADE.md) for details 141 * Added scalar type hints and return hints in all the places it was possible. Switched strict_types on for more reliability. 142 * Added DateTimeImmutable support, all record datetime are now immutable, and will toString/json serialize with the correct date format, including microseconds (unless disabled) 143 * Added timezone and microseconds to the default date format 144 * Added SendGridHandler to use the SendGrid API to send emails 145 * Added LogmaticHandler to use the Logmatic.io API to store log records 146 * Added SqsHandler to send log records to an AWS SQS queue 147 * Added ElasticsearchHandler to send records via the official ES library. Elastica users should now use ElasticaHandler instead of ElasticSearchHandler 148 * Added NoopHandler which is similar to the NullHandle but does not prevent the bubbling of log records to handlers further down the configuration, useful for temporarily disabling a handler in configuration files 149 * Added ProcessHandler to write log output to the STDIN of a given process 150 * Added HostnameProcessor that adds the machine's hostname to log records 151 * Added a `$dateFormat` option to the PsrLogMessageProcessor which lets you format DateTime instances nicely 152 * Added support for the PHP 7.x `mongodb` extension in the MongoDBHandler 153 * Fixed many minor issues in various handlers, and probably added a few regressions too 154 155### 1.26.1 (2021-05-28) 156 157 * Fixed PHP 8.1 deprecation warning 158 159### 1.26.0 (2020-12-14) 160 161 * Added $dateFormat and $removeUsedContextFields arguments to PsrLogMessageProcessor (backport from 2.x) 162 163### 1.25.5 (2020-07-23) 164 165 * Fixed array access on null in RavenHandler 166 * Fixed unique_id in WebProcessor not being disableable 167 168### 1.25.4 (2020-05-22) 169 170 * Fixed GitProcessor type error when there is no git repo present 171 * Fixed normalization of SoapFault objects containing deeply nested objects as "detail" 172 * Fixed support for relative paths in RotatingFileHandler 173 174### 1.25.3 (2019-12-20) 175 176 * Fixed formatting of resources in JsonFormatter 177 * Fixed RedisHandler failing to use MULTI properly when passed a proxied Redis instance (e.g. in Symfony with lazy services) 178 * Fixed FilterHandler triggering a notice when handleBatch was filtering all records passed to it 179 * Fixed Turkish locale messing up the conversion of level names to their constant values 180 181### 1.25.2 (2019-11-13) 182 183 * Fixed normalization of Traversables to avoid traversing them as not all of them are rewindable 184 * Fixed setFormatter/getFormatter to forward to the nested handler in FilterHandler, FingersCrossedHandler, BufferHandler and SamplingHandler 185 * Fixed BrowserConsoleHandler formatting when using multiple styles 186 * Fixed normalization of exception codes to be always integers even for PDOException which have them as numeric strings 187 * Fixed normalization of SoapFault objects containing non-strings as "detail" 188 * Fixed json encoding across all handlers to always attempt recovery of non-UTF-8 strings instead of failing the whole encoding 189 190### 1.25.1 (2019-09-06) 191 192 * Fixed forward-compatible interfaces to be compatible with Monolog 1.x too. 193 194### 1.25.0 (2019-09-06) 195 196 * Deprecated SlackbotHandler, use SlackWebhookHandler or SlackHandler instead 197 * Deprecated RavenHandler, use sentry/sentry 2.x and their Sentry\Monolog\Handler instead 198 * Deprecated HipChatHandler, migrate to Slack and use SlackWebhookHandler or SlackHandler instead 199 * Added forward-compatible interfaces and traits FormattableHandlerInterface, FormattableHandlerTrait, ProcessableHandlerInterface, ProcessableHandlerTrait. If you use modern PHP and want to make code compatible with Monolog 1 and 2 this can help. You will have to require at least Monolog 1.25 though. 200 * Added support for RFC3164 (outdated BSD syslog protocol) to SyslogUdpHandler 201 * Fixed issue in GroupHandler and WhatFailureGroupHandler where setting multiple processors would duplicate records 202 * Fixed issue in SignalHandler restarting syscalls functionality 203 * Fixed normalizers handling of exception backtraces to avoid serializing arguments in some cases 204 * Fixed ZendMonitorHandler to work with the latest Zend Server versions 205 * Fixed ChromePHPHandler to avoid sending more data than latest Chrome versions allow in headers (4KB down from 256KB). 206 207### 1.24.0 (2018-11-05) 208 209 * BC Notice: If you are extending any of the Monolog's Formatters' `normalize` method, make sure you add the new `$depth = 0` argument to your function signature to avoid strict PHP warnings. 210 * Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors 211 * Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers) 212 * Added a way to log signals being received using Monolog\SignalHandler 213 * Added ability to customize error handling at the Logger level using Logger::setExceptionHandler 214 * Added InsightOpsHandler to migrate users of the LogEntriesHandler 215 * Added protection to NormalizerFormatter against circular and very deep structures, it now stops normalizing at a depth of 9 216 * Added capture of stack traces to ErrorHandler when logging PHP errors 217 * Added RavenHandler support for a `contexts` context or extra key to forward that to Sentry's contexts 218 * Added forwarding of context info to FluentdFormatter 219 * Added SocketHandler::setChunkSize to override the default chunk size in case you must send large log lines to rsyslog for example 220 * Added ability to extend/override BrowserConsoleHandler 221 * Added SlackWebhookHandler::getWebhookUrl and SlackHandler::getToken to enable class extensibility 222 * Added SwiftMailerHandler::getSubjectFormatter to enable class extensibility 223 * Dropped official support for HHVM in test builds 224 * Fixed normalization of exception traces when call_user_func is used to avoid serializing objects and the data they contain 225 * Fixed naming of fields in Slack handler, all field names are now capitalized in all cases 226 * Fixed HipChatHandler bug where slack dropped messages randomly 227 * Fixed normalization of objects in Slack handlers 228 * Fixed support for PHP7's Throwable in NewRelicHandler 229 * Fixed race bug when StreamHandler sometimes incorrectly reported it failed to create a directory 230 * Fixed table row styling issues in HtmlFormatter 231 * Fixed RavenHandler dropping the message when logging exception 232 * Fixed WhatFailureGroupHandler skipping processors when using handleBatch 233 and implement it where possible 234 * Fixed display of anonymous class names 235 236### 1.23.0 (2017-06-19) 237 238 * Improved SyslogUdpHandler's support for RFC5424 and added optional `$ident` argument 239 * Fixed GelfHandler truncation to be per field and not per message 240 * Fixed compatibility issue with PHP <5.3.6 241 * Fixed support for headless Chrome in ChromePHPHandler 242 * Fixed support for latest Aws SDK in DynamoDbHandler 243 * Fixed support for SwiftMailer 6.0+ in SwiftMailerHandler 244 245### 1.22.1 (2017-03-13) 246 247 * Fixed lots of minor issues in the new Slack integrations 248 * Fixed support for allowInlineLineBreaks in LineFormatter when formatting exception backtraces 249 250### 1.22.0 (2016-11-26) 251 252 * Added SlackbotHandler and SlackWebhookHandler to set up Slack integration more easily 253 * Added MercurialProcessor to add mercurial revision and branch names to log records 254 * Added support for AWS SDK v3 in DynamoDbHandler 255 * Fixed fatal errors occurring when normalizing generators that have been fully consumed 256 * Fixed RollbarHandler to include a level (rollbar level), monolog_level (original name), channel and datetime (unix) 257 * Fixed RollbarHandler not flushing records automatically, calling close() explicitly is not necessary anymore 258 * Fixed SyslogUdpHandler to avoid sending empty frames 259 * Fixed a few PHP 7.0 and 7.1 compatibility issues 260 261### 1.21.0 (2016-07-29) 262 263 * Break: Reverted the addition of $context when the ErrorHandler handles regular php errors from 1.20.0 as it was causing issues 264 * Added support for more formats in RotatingFileHandler::setFilenameFormat as long as they have Y, m and d in order 265 * Added ability to format the main line of text the SlackHandler sends by explicitly setting a formatter on the handler 266 * Added information about SoapFault instances in NormalizerFormatter 267 * Added $handleOnlyReportedErrors option on ErrorHandler::registerErrorHandler (default true) to allow logging of all errors no matter the error_reporting level 268 269### 1.20.0 (2016-07-02) 270 271 * Added FingersCrossedHandler::activate() to manually trigger the handler regardless of the activation policy 272 * Added StreamHandler::getUrl to retrieve the stream's URL 273 * Added ability to override addRow/addTitle in HtmlFormatter 274 * Added the $context to context information when the ErrorHandler handles a regular php error 275 * Deprecated RotatingFileHandler::setFilenameFormat to only support 3 formats: Y, Y-m and Y-m-d 276 * Fixed WhatFailureGroupHandler to work with PHP7 throwables 277 * Fixed a few minor bugs 278 279### 1.19.0 (2016-04-12) 280 281 * Break: StreamHandler will not close streams automatically that it does not own. If you pass in a stream (not a path/url), then it will not close it for you. You can retrieve those using getStream() if needed 282 * Added DeduplicationHandler to remove duplicate records from notifications across multiple requests, useful for email or other notifications on errors 283 * Added ability to use `%message%` and other LineFormatter replacements in the subject line of emails sent with NativeMailHandler and SwiftMailerHandler 284 * Fixed HipChatHandler handling of long messages 285 286### 1.18.2 (2016-04-02) 287 288 * Fixed ElasticaFormatter to use more precise dates 289 * Fixed GelfMessageFormatter sending too long messages 290 291### 1.18.1 (2016-03-13) 292 293 * Fixed SlackHandler bug where slack dropped messages randomly 294 * Fixed RedisHandler issue when using with the PHPRedis extension 295 * Fixed AmqpHandler content-type being incorrectly set when using with the AMQP extension 296 * Fixed BrowserConsoleHandler regression 297 298### 1.18.0 (2016-03-01) 299 300 * Added optional reduction of timestamp precision via `Logger->useMicrosecondTimestamps(false)`, disabling it gets you a bit of performance boost but reduces the precision to the second instead of microsecond 301 * Added possibility to skip some extra stack frames in IntrospectionProcessor if you have some library wrapping Monolog that is always adding frames 302 * Added `Logger->withName` to clone a logger (keeping all handlers) with a new name 303 * Added FluentdFormatter for the Fluentd unix socket protocol 304 * Added HandlerWrapper base class to ease the creation of handler wrappers, just extend it and override as needed 305 * Added support for replacing context sub-keys using `%context.*%` in LineFormatter 306 * Added support for `payload` context value in RollbarHandler 307 * Added setRelease to RavenHandler to describe the application version, sent with every log 308 * Added support for `fingerprint` context value in RavenHandler 309 * Fixed JSON encoding errors that would gobble up the whole log record, we now handle those more gracefully by dropping chars as needed 310 * Fixed write timeouts in SocketHandler and derivatives, set to 10sec by default, lower it with `setWritingTimeout()` 311 * Fixed PHP7 compatibility with regard to Exception/Throwable handling in a few places 312 313### 1.17.2 (2015-10-14) 314 315 * Fixed ErrorHandler compatibility with non-Monolog PSR-3 loggers 316 * Fixed SlackHandler handling to use slack functionalities better 317 * Fixed SwiftMailerHandler bug when sending multiple emails they all had the same id 318 * Fixed 5.3 compatibility regression 319 320### 1.17.1 (2015-08-31) 321 322 * Fixed RollbarHandler triggering PHP notices 323 324### 1.17.0 (2015-08-30) 325 326 * Added support for `checksum` and `release` context/extra values in RavenHandler 327 * Added better support for exceptions in RollbarHandler 328 * Added UidProcessor::getUid 329 * Added support for showing the resource type in NormalizedFormatter 330 * Fixed IntrospectionProcessor triggering PHP notices 331 332### 1.16.0 (2015-08-09) 333 334 * Added IFTTTHandler to notify ifttt.com triggers 335 * Added Logger::setHandlers() to allow setting/replacing all handlers 336 * Added $capSize in RedisHandler to cap the log size 337 * Fixed StreamHandler creation of directory to only trigger when the first log write happens 338 * Fixed bug in the handling of curl failures 339 * Fixed duplicate logging of fatal errors when both error and fatal error handlers are registered in monolog's ErrorHandler 340 * Fixed missing fatal errors records with handlers that need to be closed to flush log records 341 * Fixed TagProcessor::addTags support for associative arrays 342 343### 1.15.0 (2015-07-12) 344 345 * Added addTags and setTags methods to change a TagProcessor 346 * Added automatic creation of directories if they are missing for a StreamHandler to open a log file 347 * Added retry functionality to Loggly, Cube and Mandrill handlers so they retry up to 5 times in case of network failure 348 * Fixed process exit code being incorrectly reset to 0 if ErrorHandler::registerExceptionHandler was used 349 * Fixed HTML/JS escaping in BrowserConsoleHandler 350 * Fixed JSON encoding errors being silently suppressed (PHP 5.5+ only) 351 352### 1.14.0 (2015-06-19) 353 354 * Added PHPConsoleHandler to send record to Chrome's PHP Console extension and library 355 * Added support for objects implementing __toString in the NormalizerFormatter 356 * Added support for HipChat's v2 API in HipChatHandler 357 * Added Logger::setTimezone() to initialize the timezone monolog should use in case date.timezone isn't correct for your app 358 * Added an option to send formatted message instead of the raw record on PushoverHandler via ->useFormattedMessage(true) 359 * Fixed curl errors being silently suppressed 360 361### 1.13.1 (2015-03-09) 362 363 * Fixed regression in HipChat requiring a new token to be created 364 365### 1.13.0 (2015-03-05) 366 367 * Added Registry::hasLogger to check for the presence of a logger instance 368 * Added context.user support to RavenHandler 369 * Added HipChat API v2 support in the HipChatHandler 370 * Added NativeMailerHandler::addParameter to pass params to the mail() process 371 * Added context data to SlackHandler when $includeContextAndExtra is true 372 * Added ability to customize the Swift_Message per-email in SwiftMailerHandler 373 * Fixed SwiftMailerHandler to lazily create message instances if a callback is provided 374 * Fixed serialization of INF and NaN values in Normalizer and LineFormatter 375 376### 1.12.0 (2014-12-29) 377 378 * Break: HandlerInterface::isHandling now receives a partial record containing only a level key. This was always the intent and does not break any Monolog handler but is strictly speaking a BC break and you should check if you relied on any other field in your own handlers. 379 * Added PsrHandler to forward records to another PSR-3 logger 380 * Added SamplingHandler to wrap around a handler and include only every Nth record 381 * Added MongoDBFormatter to support better storage with MongoDBHandler (it must be enabled manually for now) 382 * Added exception codes in the output of most formatters 383 * Added LineFormatter::includeStacktraces to enable exception stack traces in logs (uses more than one line) 384 * Added $useShortAttachment to SlackHandler to minify attachment size and $includeExtra to append extra data 385 * Added $host to HipChatHandler for users of private instances 386 * Added $transactionName to NewRelicHandler and support for a transaction_name context value 387 * Fixed MandrillHandler to avoid outputting API call responses 388 * Fixed some non-standard behaviors in SyslogUdpHandler 389 390### 1.11.0 (2014-09-30) 391 392 * Break: The NewRelicHandler extra and context data are now prefixed with extra_ and context_ to avoid clashes. Watch out if you have scripts reading those from the API and rely on names 393 * Added WhatFailureGroupHandler to suppress any exception coming from the wrapped handlers and avoid chain failures if a logging service fails 394 * Added MandrillHandler to send emails via the Mandrillapp.com API 395 * Added SlackHandler to log records to a Slack.com account 396 * Added FleepHookHandler to log records to a Fleep.io account 397 * Added LogglyHandler::addTag to allow adding tags to an existing handler 398 * Added $ignoreEmptyContextAndExtra to LineFormatter to avoid empty [] at the end 399 * Added $useLocking to StreamHandler and RotatingFileHandler to enable flock() while writing 400 * Added support for PhpAmqpLib in the AmqpHandler 401 * Added FingersCrossedHandler::clear and BufferHandler::clear to reset them between batches in long running jobs 402 * Added support for adding extra fields from $_SERVER in the WebProcessor 403 * Fixed support for non-string values in PrsLogMessageProcessor 404 * Fixed SwiftMailer messages being sent with the wrong date in long running scripts 405 * Fixed minor PHP 5.6 compatibility issues 406 * Fixed BufferHandler::close being called twice 407 408### 1.10.0 (2014-06-04) 409 410 * Added Logger::getHandlers() and Logger::getProcessors() methods 411 * Added $passthruLevel argument to FingersCrossedHandler to let it always pass some records through even if the trigger level is not reached 412 * Added support for extra data in NewRelicHandler 413 * Added $expandNewlines flag to the ErrorLogHandler to create multiple log entries when a message has multiple lines 414 415### 1.9.1 (2014-04-24) 416 417 * Fixed regression in RotatingFileHandler file permissions 418 * Fixed initialization of the BufferHandler to make sure it gets flushed after receiving records 419 * Fixed ChromePHPHandler and FirePHPHandler's activation strategies to be more conservative 420 421### 1.9.0 (2014-04-20) 422 423 * Added LogEntriesHandler to send logs to a LogEntries account 424 * Added $filePermissions to tweak file mode on StreamHandler and RotatingFileHandler 425 * Added $useFormatting flag to MemoryProcessor to make it send raw data in bytes 426 * Added support for table formatting in FirePHPHandler via the table context key 427 * Added a TagProcessor to add tags to records, and support for tags in RavenHandler 428 * Added $appendNewline flag to the JsonFormatter to enable using it when logging to files 429 * Added sound support to the PushoverHandler 430 * Fixed multi-threading support in StreamHandler 431 * Fixed empty headers issue when ChromePHPHandler received no records 432 * Fixed default format of the ErrorLogHandler 433 434### 1.8.0 (2014-03-23) 435 436 * Break: the LineFormatter now strips newlines by default because this was a bug, set $allowInlineLineBreaks to true if you need them 437 * Added BrowserConsoleHandler to send logs to any browser's console via console.log() injection in the output 438 * Added FilterHandler to filter records and only allow those of a given list of levels through to the wrapped handler 439 * Added FlowdockHandler to send logs to a Flowdock account 440 * Added RollbarHandler to send logs to a Rollbar account 441 * Added HtmlFormatter to send prettier log emails with colors for each log level 442 * Added GitProcessor to add the current branch/commit to extra record data 443 * Added a Monolog\Registry class to allow easier global access to pre-configured loggers 444 * Added support for the new official graylog2/gelf-php lib for GelfHandler, upgrade if you can by replacing the mlehner/gelf-php requirement 445 * Added support for HHVM 446 * Added support for Loggly batch uploads 447 * Added support for tweaking the content type and encoding in NativeMailerHandler 448 * Added $skipClassesPartials to tweak the ignored classes in the IntrospectionProcessor 449 * Fixed batch request support in GelfHandler 450 451### 1.7.0 (2013-11-14) 452 453 * Added ElasticSearchHandler to send logs to an Elastic Search server 454 * Added DynamoDbHandler and ScalarFormatter to send logs to Amazon's Dynamo DB 455 * Added SyslogUdpHandler to send logs to a remote syslogd server 456 * Added LogglyHandler to send logs to a Loggly account 457 * Added $level to IntrospectionProcessor so it only adds backtraces when needed 458 * Added $version to LogstashFormatter to allow using the new v1 Logstash format 459 * Added $appName to NewRelicHandler 460 * Added configuration of Pushover notification retries/expiry 461 * Added $maxColumnWidth to NativeMailerHandler to change the 70 chars default 462 * Added chainability to most setters for all handlers 463 * Fixed RavenHandler batch processing so it takes the message from the record with highest priority 464 * Fixed HipChatHandler batch processing so it sends all messages at once 465 * Fixed issues with eAccelerator 466 * Fixed and improved many small things 467 468### 1.6.0 (2013-07-29) 469 470 * Added HipChatHandler to send logs to a HipChat chat room 471 * Added ErrorLogHandler to send logs to PHP's error_log function 472 * Added NewRelicHandler to send logs to NewRelic's service 473 * Added Monolog\ErrorHandler helper class to register a Logger as exception/error/fatal handler 474 * Added ChannelLevelActivationStrategy for the FingersCrossedHandler to customize levels by channel 475 * Added stack traces output when normalizing exceptions (json output & co) 476 * Added Monolog\Logger::API constant (currently 1) 477 * Added support for ChromePHP's v4.0 extension 478 * Added support for message priorities in PushoverHandler, see $highPriorityLevel and $emergencyLevel 479 * Added support for sending messages to multiple users at once with the PushoverHandler 480 * Fixed RavenHandler's support for batch sending of messages (when behind a Buffer or FingersCrossedHandler) 481 * Fixed normalization of Traversables with very large data sets, only the first 1000 items are shown now 482 * Fixed issue in RotatingFileHandler when an open_basedir restriction is active 483 * Fixed minor issues in RavenHandler and bumped the API to Raven 0.5.0 484 * Fixed SyslogHandler issue when many were used concurrently with different facilities 485 486### 1.5.0 (2013-04-23) 487 488 * Added ProcessIdProcessor to inject the PID in log records 489 * Added UidProcessor to inject a unique identifier to all log records of one request/run 490 * Added support for previous exceptions in the LineFormatter exception serialization 491 * Added Monolog\Logger::getLevels() to get all available levels 492 * Fixed ChromePHPHandler so it avoids sending headers larger than Chrome can handle 493 494### 1.4.1 (2013-04-01) 495 496 * Fixed exception formatting in the LineFormatter to be more minimalistic 497 * Fixed RavenHandler's handling of context/extra data, requires Raven client >0.1.0 498 * Fixed log rotation in RotatingFileHandler to work with long running scripts spanning multiple days 499 * Fixed WebProcessor array access so it checks for data presence 500 * Fixed Buffer, Group and FingersCrossed handlers to make use of their processors 501 502### 1.4.0 (2013-02-13) 503 504 * Added RedisHandler to log to Redis via the Predis library or the phpredis extension 505 * Added ZendMonitorHandler to log to the Zend Server monitor 506 * Added the possibility to pass arrays of handlers and processors directly in the Logger constructor 507 * Added `$useSSL` option to the PushoverHandler which is enabled by default 508 * Fixed ChromePHPHandler and FirePHPHandler issue when multiple instances are used simultaneously 509 * Fixed header injection capability in the NativeMailHandler 510 511### 1.3.1 (2013-01-11) 512 513 * Fixed LogstashFormatter to be usable with stream handlers 514 * Fixed GelfMessageFormatter levels on Windows 515 516### 1.3.0 (2013-01-08) 517 518 * Added PSR-3 compliance, the `Monolog\Logger` class is now an instance of `Psr\Log\LoggerInterface` 519 * Added PsrLogMessageProcessor that you can selectively enable for full PSR-3 compliance 520 * Added LogstashFormatter (combine with SocketHandler or StreamHandler to send logs to Logstash) 521 * Added PushoverHandler to send mobile notifications 522 * Added CouchDBHandler and DoctrineCouchDBHandler 523 * Added RavenHandler to send data to Sentry servers 524 * Added support for the new MongoClient class in MongoDBHandler 525 * Added microsecond precision to log records' timestamps 526 * Added `$flushOnOverflow` param to BufferHandler to flush by batches instead of losing 527 the oldest entries 528 * Fixed normalization of objects with cyclic references 529 530### 1.2.1 (2012-08-29) 531 532 * Added new $logopts arg to SyslogHandler to provide custom openlog options 533 * Fixed fatal error in SyslogHandler 534 535### 1.2.0 (2012-08-18) 536 537 * Added AmqpHandler (for use with AMQP servers) 538 * Added CubeHandler 539 * Added NativeMailerHandler::addHeader() to send custom headers in mails 540 * Added the possibility to specify more than one recipient in NativeMailerHandler 541 * Added the possibility to specify float timeouts in SocketHandler 542 * Added NOTICE and EMERGENCY levels to conform with RFC 5424 543 * Fixed the log records to use the php default timezone instead of UTC 544 * Fixed BufferHandler not being flushed properly on PHP fatal errors 545 * Fixed normalization of exotic resource types 546 * Fixed the default format of the SyslogHandler to avoid duplicating datetimes in syslog 547 548### 1.1.0 (2012-04-23) 549 550 * Added Monolog\Logger::isHandling() to check if a handler will 551 handle the given log level 552 * Added ChromePHPHandler 553 * Added MongoDBHandler 554 * Added GelfHandler (for use with Graylog2 servers) 555 * Added SocketHandler (for use with syslog-ng for example) 556 * Added NormalizerFormatter 557 * Added the possibility to change the activation strategy of the FingersCrossedHandler 558 * Added possibility to show microseconds in logs 559 * Added `server` and `referer` to WebProcessor output 560 561### 1.0.2 (2011-10-24) 562 563 * Fixed bug in IE with large response headers and FirePHPHandler 564 565### 1.0.1 (2011-08-25) 566 567 * Added MemoryPeakUsageProcessor and MemoryUsageProcessor 568 * Added Monolog\Logger::getName() to get a logger's channel name 569 570### 1.0.0 (2011-07-06) 571 572 * Added IntrospectionProcessor to get info from where the logger was called 573 * Fixed WebProcessor in CLI 574 575### 1.0.0-RC1 (2011-07-01) 576 577 * Initial release 578