Author: dr
Date: Tue Feb 5 16:57:55 2008
New Revision: 7297
Log:
- Implemented feature #12503: Ability to disable log rotation by setting the
max log file option to the constructor to false.
Modified:
trunk/EventLog/ChangeLog
trunk/EventLog/src/writers/writer_file.php
trunk/EventLog/tests/writers/writer_file_test.php
Modified: trunk/EventLog/ChangeLog
==============================================================================
--- trunk/EventLog/ChangeLog [iso-8859-1] (original)
+++ trunk/EventLog/ChangeLog [iso-8859-1] Tue Feb 5 16:57:55 2008
@@ -1,3 +1,10 @@
+1.3alpha1 - [RELEASEDATE]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Implemented feature #12503: Ability to disable log rotation by setting the
+ max log file option to the constructor to false.
+
+
1.2 - Monday 17 December 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Modified: trunk/EventLog/src/writers/writer_file.php
==============================================================================
--- trunk/EventLog/src/writers/writer_file.php [iso-8859-1] (original)
+++ trunk/EventLog/src/writers/writer_file.php [iso-8859-1] Tue Feb 5 16:57:55
2008
@@ -13,10 +13,11 @@
* system.
*
* The main purpose is to keep track of the various log files and support
- * log rotation. The file format of the log should be implemented in a
subclass.
+ * log rotation, although log rotation can also be disabled. The file format of
+ * the log should be implemented in a subclass.
*
- * The following example implements a new log writer that writes the output in
([EMAIL PROTECTED] print_r()} format)
- * to a file:
+ * The following example implements a new log writer that writes the output in
+ * ([EMAIL PROTECTED] print_r()} format) to a file:
* <code>
* class MyLogWriter extends ezcLogFileWriter
* {
@@ -67,7 +68,8 @@
protected $logDirectory;
/**
- * Maximum file size before rotation.
+ * Maximum file size before rotation, or false when log rotation is
disabled.
+ *
*
* @var int
*/
@@ -91,12 +93,12 @@
* If the file $defaultFile is not null, log messages that are not [EMAIL
PROTECTED] map() mapped}
* to any file are written to this $defaultFile. If $defaultFile is null,
then
* log messages are discarded.
-
*
* Set $maxLogRotationSize to specify the maximum size of a logfile. When
the
* maximum size is reached, the log will be rotated. $maxLogFiles sets the
maximum
* number of rotated log files. The oldest rotated log will be removed
when the
- * maxLogFiles exceeds.
+ * $maxLogFiles exceeds. Log rotation can be disabled by setting
+ * $maxLogRotationSize to false.
*
* @param string $logDirectory
* @param string $defaultFile
@@ -184,15 +186,14 @@
*/
protected function openFile( $fileName )
{
- if ( isset( $this->openFiles[$fileName] ) )
- {
- return $this->openFiles[$fileName];
+ $path = $this->logDirectory . "/". $fileName;
+ if ( isset( $this->openFiles[$path] ) )
+ {
+ return $this->openFiles[$path];
}
clearstatcache();
- $path = $this->logDirectory . "/". $fileName;
- if ( file_exists( $path ) &&
- ( filesize( $path ) >= $this->maxSize ) )
+ if ( $this->maxSize !== false && file_exists( $path ) && ( filesize(
$path ) >= $this->maxSize ) )
{
$this->rotateLog( $fileName );
}
Modified: trunk/EventLog/tests/writers/writer_file_test.php
==============================================================================
--- trunk/EventLog/tests/writers/writer_file_test.php [iso-8859-1] (original)
+++ trunk/EventLog/tests/writers/writer_file_test.php [iso-8859-1] Tue Feb 5
16:57:55 2008
@@ -154,6 +154,24 @@
$this->assertEquals(print_r($msg, true), file_get_contents(
$this->getTempDir() . "/default.log.1") );
}
+ public function testLogRotateDisabled()
+ {
+ $msg = array("message" => "1234567890123456789012345",
+ "type" => 1,
+ "source" => "s",
+ "category" => "c");
+
+ for ( $i = 0; $i < 50000; $i++ )
+ {
+ $this->writer = new TempImplementation($this->getTempDir(),
$this->logFile, false);
+
+ $this->writer->writeLogMessage( $msg["message"], $msg["type"],
$msg["source"], $msg["category"]);
+ clearstatcache();
+ }
+ $this->assertTrue(file_exists( $this->getTempDir() ."/default.log"),
"Log rotation messes up the default log file." );
+ $this->assertFalse(file_exists( $this->getTempDir()
."/default.log.1"), "Expected that the log files don't rotate." );
+ }
+
public function testMaxLogFiles()
{
$msg = array("message" => "1234567890",
--
svn-components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components