## Apache log4php changelog

### Release History

Version | Date | Description
--- | --- | ---
2.3.0 | SVN |
2.2.1 | 2012-02-18 |
2.2.0 | 2011-12-20 |
2.1.0 | 2011-07-13 | Stabilizing
2.0.0 | 2009-12-12 | PHP 5 compatibility

### Release 2.3.0 - SVN

Type | Changes | By
--- | --- | ---
| LoggerPatternConverter formats max incorrectly Fixes LOG4PHP-163. Thanks to Daniel Wong. | Ivan Habunek
| Events logged by upstream loggers even if disabled by level. Fixes LOG4PHP-188. | Ivan Habunek
| Don't clear the entire stat cache on an append. Fixes LOG4PHP-186. Thanks to Rasmus Lerdorf. | Ivan Habunek
| Allow setting of a default renderer. Fixes LOG4PHP-141. | Ivan Habunek
| Fixed LoggerAppenderDailyFile to rollover on date change in long running scipts. Fixes LOG4PHP-120. Thanks to Michal Vanek. | Ivan Habunek
| Re-enabled usage of PHP constants in config parameters. Fixes LOG4PHP-184. | Ivan Habunek
| Removed $_ENV and $_SERVER access from LoggerMDC. | Ivan Habunek
| Made LoggerLayoutTTCC deprecated. | Ivan Habunek
| Fixed formatting bug in LoggerLayoutPattern. Fixes LOG4PHP-163. | Ivan Habunek
| Rewritten pattern system to allow longer conversion words and some new ones. Fixes LOG4PHP-172. | Ivan Habunek
| Added reconnectAttempts parameter to LoggerAppenderPDO. Adds support for reconnect if connection fails while appending. Fixes LOG4PHP-134. | Ivan Habunek
| Firephp appender logs to Firebug console. Fixes LOG4PHP-174. | Florian Semm

### Release 2.2.1 - 2012-02-18

Type | Changes | By
--- | --- | ---
| Fixed a bug which prevented configuration by passing a LoggerConfigurator instance. Fixes LOG4PHP-168. | Ivan Habunek
| Fixed a bug which prevented parsing of INI configuration files when using PHP 5.2.x. Fixes LOG4PHP-167. | Ivan Habunek
| Added connection timeout parameter to MongoDB appender. Fixes LOG4PHP-166. Thanks to David Hilowitz. | Ivan Habunek

### Release 2.2.0 - 2011-12-20

Type | Changes | By
--- | --- | ---
| LoggerAppenderFile throws wrong warning messages. Fixes LOG4PHP-158. | Ivan Habunek
| All configurable components should report errors when given invalid values Fixes LOG4PHP-161. | Ivan Habunek
| Extended LoggerLayoutXml to include MDC info Fixes LOG4PHP-165. Thanks to Johannes Wohlgemuth. | Ivan Habunek
| Warning for invalid appender threshold level never called. Fixes LOG4PHP-162. | Ivan Habunek
| Order of params in LoggerAppenderDailyFile configuration is significant. Fixes LOG4PHP-114. | Ivan Habunek
| Rewritten LoggerAppenderSocket to use a layout. Fixes LOG4PHP-154. | Ivan Habunek
| Appeneders should use a default layout is no layout is specified in configuration Fixes LOG4PHP-160. Thanks to Florian Semm. | Ivan Habunek
| Created a new layout LoggerLayoutSerialized which formats events as serialized objects. Fixes LOG4PHP-155. | Ivan Habunek
| Appenders do not close gracefully if a fatal error occurs. Fixes LOG4PHP-159. Thanks to Justin Cherniak. | Ivan Habunek
| Wrong order in configuration breaks logging. Fixes LOG4PHP-101. | Ivan Habunek
| A rewrite of the configurator. Fixes LOG4PHP-152. | Ivan Habunek
| Bugs during HipHop build Fixes LOG4PHP-147. | Ivan Habunek
| Move common appender methods to parent class Fixes LOG4PHP-151. | Ivan Habunek
| The syslog appender does not correctly parse options Fixes LOG4PHP-145. | Ivan Habunek
| Remove deprecated appender LoggerAppenderAdodb Fixes LOG4PHP-149. | Ivan Habunek
| LoggerUserFieldPatternConverter class missing in log4php archive Fixes LOG4PHP-148. | Ivan Habunek
| Improve pear build. Fixes LOG4PHP-137. | Ivan Habunek
| LoggerConfiguratorPhp does not accept integer constants for appender threshold Fixes LOG4PHP-143. Thanks to Justin Cherniak. | Ivan Habunek

### Release 2.1.0 - 2011-07-13

Type | Changes | By
--- | --- | ---
| Permission denied while renaming log file when hundred of users are accessing the application Fixes LOG4PHP-138. | Christian Grobmeier
| Fixed incorrect usage of changes.xml Fixes LOG4PHP-140. | Ivan Habunek
| Log4PHP causes odd errors in the underlying application if used with source having an existing __autoload function Fixes LOG4PHP-129. | Ivan Habunek
| RendererMap::getByClassName doesnt recognize instances of child classes Fixes LOG4PHP-122. Thanks to Moritz Schmidt. | Ivan Habunek
| LoggerConfiguratorPhp does not parse renderer configuration Fixes LOG4PHP-123. Thanks to Moritz Schmidt. | Ivan Habunek
| Adapted MongoDB appender to better fit in log4php codebase. Fixes LOG4PHP-110. Thanks to Vladimir Gorej. | Ivan Habunek
| LoggerConfiguratorPhp does not appear to respect appender file property from config Fixes LOG4PHP-126. Thanks to Peter Chapman. | Christian Grobmeier
| Additivity cannot be disabled through log4php.properties ini file. Fixes LOG4PHP-118. Thanks to Craig Marvelley. | Christian Grobmeier
| Added MongoDB appender Fixes LOG4PHP-110. Thanks to Vladimir Gorej. | Christian Grobmeier
| File appenders parameters (removed overloading of setFile()). Fixes LOG4PHP-131. | Ivan Habunek
| PDO appender doesn't close connections Fixes LOG4PHP-133. Thanks to Dmitry Katemirov. | Ivan Habunek
| Replaced calls to deprecated PHPUnit method assertTypeOf() with assertInternalType() and assertInstanceOf(). | Ivan Habunek
| Refactored LoggerNDC and added tests Fixes LOG4PHP-104. | Ivan Habunek
| LoggerMDC needs refactoring + tests Fixes LOG4PHP-105. | Ivan Habunek
| Added __toString magic method to LoggerLevel. | Ivan Habunek
| LoggerConfiguratorIni::configure() and unexptected results from error_get_last() Fixes LOG4PHP-117. Thanks to Maciej Mazur. | Ivan Habunek
| Milliseconds do not change when using LoggerLayoutPattern Fixes LOG4PHP-113. | Ivan Habunek
| Instanciate LoggerAppenderPDO by hand throw exception Fixes LOG4PHP-115. Thanks to Vaceletm. | Christian Grobmeier
| PHP Configurator: set remaining properties to appenders Fixes LOG4PHP-36. Thanks to Moritz Schmidt. | Christian Grobmeier
| MongoDB: improved exception handling Fixes LOG4PHP-110. Thanks to Vladimir Gorej. | Christian Grobmeier
| Logging ClassName doesn't work Fixes LOG4PHP-112. Thanks to Darja Ryazhskikh. | Christian Grobmeier
| Improved add HTML line break feature in LoggerAppenderEcho Fixes LOG4PHP-108. Thanks to Ivan Habunek. | Christian Grobmeier
| patch for Throwable information associated with logging event Fixes LOG4PHP-109. Thanks to Vladimir Gorej. | Christian Grobmeier
| Documentation: Problem using a custom ConversionPattern Fixes LOG4PHP-111. Thanks to Ivan Habunek. | Christian Grobmeier
| Add HTML line break to LoggerAppenderEcho output Fixes LOG4PHP-108. Thanks to Florian Platzer. | Christian Grobmeier
| Lowered pear_installer version dependency to 1.7.0 | Christian Hammers
| Included new LoggerLayoutPattern tests Thanks to Ivan Habunek. | Christian Grobmeier
| Exception when using more than one LoggerAppenderFile Fixes LOG4PHP-103. Thanks to Moritz Schmidt. | Christian Grobmeier
| LoggerLayoutPattern fails tests Fixes LOG4PHP-102. Thanks to Ivan Habunek. | Christian Grobmeier
| Directly assign an array on Logger PHP configuration Fixes LOG4PHP-100. Thanks to Moritz Schmidt. | Christian Grobmeier
| Add trace level to Log4PHP Fixes LOG4PHP-95. Thanks to Ivan Habunek. | Christian Grobmeier
| Some of the tests don't pass under Windows Fixes LOG4PHP-96. Thanks to Tommy Montgomery. | Christian Grobmeier
| LoggerClassNamePatternConverter accessing private property Fixes LOG4PHP-93. Thanks to Hiroaki Kawai. | Christian Grobmeier
| LoginOptionConverter.php (used wrong constant name) Fixes LOG4PHP-91. Thanks to Dan Barkwell. | Christian Grobmeier

### Release 2.0.0 - 2009-12-12

Type | Changes | By
--- | --- | ---
| Maven 2.0 build Fixes LOG4PHP-3. |
| Updated source file headers with current ASF notice Fixes LOG4PHP-7. |
| PHP 5 compatibility modification. |
| removed all @author tags. All contributors are named (with task) in the changelog file Fixes LOG4PHP-1. | Christian Grobmeier
| Fatal error for constructor in LoggerAppenderRollingFile Fixes LOG4PHP-4. | Michael Aichler
| LoggerAppenderRollingFile unable to open file and append logs Fixes LOG4PHP-5. | Michael Aichler
| Change copyright notices to conform to the Source Header and Copyright Notice Policy Fixes LOG4PHP-7. | Curt Arnold
| log4php.dtd should be reviewed Fixes LOG4PHP-9. | Christian Grobmeier
| trailing "\n" Fixes LOG4PHP-11. | Hiroaki Kawai
| LoggerAppenderFile does not create missing directories Fixes LOG4PHP-12. | Knut Urdalen
| LoggerPropertyConfigurator: Only variables should be assigned by reference Fixes LOG4PHP-13. | Michael Aichler
| LoggerPropertySetter: warnings about is_a() and non-static method Fixes LOG4PHP-14. | Michael Aichler
| Logger: warnings about is_a() Fixes LOG4PHP-15. | Michael Aichler
| Patch for LoggerAppenderSyslog to use Layouts Fixes LOG4PHP-16. | Gary Richardson
| %l Pattern layout raises a protected property access error Fixes LOG4PHP-17. | Yomei Komiya
| Date pattern %d conversion is invalid Fixes LOG4PHP-18. | Yomei Komiya
| Logger location info is invalid in log outputs of Logger's subclasses Fixes LOG4PHP-19. | Yomei Komiya
| Custom layout for LoggerAppenderPhp Fixes LOG4PHP-20. | Corin Lawson
| log4php.dtd invalid Fixes LOG4PHP-22. | Christian Grobmeier
| Mixed PHP4 and PHP5 syntax Fixes LOG4PHP-23. | Christian Grobmeier
| LoggerAppenderRollingFile unable to rollover Fixes LOG4PHP-24. | Dennis Korbar
| Allow to set environment variables in LoggerOptionConverter Fixes LOG4PHP-25. | Christian Hammers, Knut Urdalen
| LoggerAppenderConsole doesn't write to STDERR Fixes LOG4PHP-28. | Michael Kuenzli, Knut Urdalen
| Appenders is not properly closed upon destruction Fixes LOG4PHP-33. | Knut Urdalen
| Load classes through autoload instead of explicitly include them Fixes LOG4PHP-29. | Knut Urdalen
| Implement LoggerAppenderPDO Fixes LOG4PHP-30. | Christian Grobmeier
| Removing unnecessary use of LOG4PHP_DIR Fixes LOG4PHP-31. | Knut Urdalen
| Refactor from using define to class contants (Knut Urdalen, Christian Grobmeier) Fixes LOG4PHP-32. | Knut Urdalen, Christian Grobmeier
| Remove all internal debugging Fixes LOG4PHP-34. | Christian Grobmeier
| Replace LOG4PHP_LINE_SEP with PHP_EOL Fixes LOG4PHP-35. | Knut Urdalen
| removed LoggerAppenderDB in favour to LoggerAppenderPDO Fixes LOG4PHP-37. | Christian Grobmeier
| Replace is_a() with instanceof Fixes LOG4PHP-38. | Knut Urdalen
| Remove deprecated methods Fixes LOG4PHP-39. | Knut Urdalen
| Merge LoggerAppender and LoggerAppenderSkeleton Fixes LOG4PHP-40. | Christian Grobmeier
| Remove size restriction of MDC table in LoggerMDC Fixes LOG4PHP-43. | Knut Urdalen
| PEAR package Fixes LOG4PHP-44. | Knut Urdalen
| Use PreparedStatement in PDO-Appender Fixes LOG4PHP-46. | Christian Hammers
| PDO Appender now uses quote() due to PreparedStatements Fixes LOG4PHP-47. | Christian Hammers
| Create more File Appender Tests Fixes LOG4PHP-50. | Christian Grobmeier
| Use of custom factorys is discouraged - clean up Fixes LOG4PHP-52. | Christian Grobmeier
| Removed references were appropriate Fixes LOG4PHP-53. | Christian Grobmeier
| PHPDoc is wrong due to class movements - clean up Fixes LOG4PHP-54. | Christian Grobmeier
| Replace define('LOG4PHP_CONFIGURATION' by static variable Fixes LOG4PHP-56. | Christian Grobmeier
| Make use of destructors instead of Logger::shutdown Fixes LOG4PHP-57. | Christian Grobmeier
| LoggerAppenderConsole is initialized wrong Fixes LOG4PHP-59. | Christian Grobmeier, Christian Hammers
| Improved quickstart.apt Fixes LOG4PHP-60. | Christian Hammers
| Does not print warning if ini file is corrupt Fixes LOG4PHP-62. | Christian Hammers
| PDOAppender should throw LoggerException on database problems Fixes LOG4PHP-63. | Christian Hammers
| Remove deprecated call-by-reference in LoggerLayoutPattern Fixes LOG4PHP-64. | Christian Hammers
| Mixing protected and private in Logger and the inheriting LoggerRoot Fixes LOG4PHP-65. | Christian Grobmeier
| LoggerConfiguratorBasicTest fails in "mvn test" but not in phpunit Fixes LOG4PHP-66. | Christian Hammers
| Refactoring: Use Logger instead of LoggerManager Fixes LOG4PHP-67. | Christian Hammers
| Using LoggerAppenderFile logging to the log file in one Apache session blocks every other Apache session that tries to write to the file until the original request has been processed Fixes LOG4PHP-71. | Christian Grobmeier
| Unable to configure socket appender with attribute useXml = true Fixes LOG4PHP-76. | Dan Hansen
| LoggerReflectionUtils::setter() should be defined as a static method Fixes LOG4PHP-77. | Dan Hansen
| Increased field sizes in AppenderPDO database tables Fixes LOG4PHP-79. | Christian Hammers
| An exception is now thrown if an unknown property is set via config file Fixes LOG4PHP-80. | Christian Hammers
| Boolean values in .properties files are now correctly parsed Fixes LOG4PHP-81. | Christian Hammers
| Added more examples to the API docs Fixes LOG4PHP-82. | Christian Hammers
| Fixed call of undefined method when using RendererMap Fixes LOG4PHP-84. | Christian Hammers
| LoggerAppenderRollingFile should not fail if the file does not already exist Fixes LOG4PHP-86. | Christian Hammers
| LoggerXmlConfigurator can now interpret threshold commands at appender level | Christian Grobmeier
| Initial port to PHP 5 | Knut Urdalen
| Established new unit test suite | Knut Urdalen
| Added a range of examples | Knut Urdalen
| Created common ReflectionUtils class and moved factory calls to there |