## Apache Zeta Components Manual :: Docs For Class ezcLogFileWriter

### EventLog::ezcLogFileWriter

### Class ezcLogFileWriter

The ezcLogFileWriter class provides functionality to write log files to the file system.

The main purpose is to keep track of the various log files and support 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 (http://www.php.net/print_r format) to a file:

1. classMyLogWriterextends ezcLogFileWriter
2. {
3. // Call parent constructor. (In this case, it possible to omit the constructor.)
4. publicfunction__construct($dir,$file=null,$maxSize=204800,$maxFiles=3)
5. {
6. parent::__construct($dir,$file,$maxSize,$maxFiles);
7. }
9. // Implement the ezcLogWriter interface:
10. publicfunctionwriteLogMessage($message,$type,$source,$category,$extraInfo=array() )
11. {
12. // Create a message
13. $res=print_r (array("message"=>$message,"type"=>$type,"source"=>$source,"category"=>$category),true);
15. // And call the parent class
16. $this->write($type,$source,$category,$res);
17. }
18. }

Source for this file: /EventLog/src/writers/writer_file.php

### Implements interfaces:

- ezcLogWriter

Version: | //autogentag//

### Descendants

Child Class | Description
--- | ---
ezcLogUnixFileWriter | Writes the log messages to a file in a format that is frequently used on the Unix operating system.

### Member Variables

protected ezcLogFilterSet | `$fileMap` Keeps track of which group of messages should be stored in what file.
protected string | `$logDirectory` Directory where the log files should be placed.
protected int | `$maxFiles` Maximum log rotation files with the same name. When rotating and the max limit is reached, the oldest log is discarded.
protected int | `$maxSize` Maximum file size before rotation, or false when log rotation is disabled.
protected array(resource) | `$openFiles = array()` Contains all the open files. The first file in the array is always the default file.

### Method Summary

public ezcLogFileWriter | `__construct( $logDirectory , [ $defaultFile = null] , [ $maxLogRotationSize = 204800] , [ $maxLogFiles = 3] )` Constructs an ezcLogFileWriter.
public void | `__destruct( )` Destructs the object and closes all open file handles.
protected resource | `openFile( $fileName )` Returns the filehandle of the $fileName.
protected bool | `rotateLog( $fileName )` Rotates a log and returns true upon success.
public void | `setFile( $logFilter , $fileName )` Maps the filename $fileName to the messages specified by the ezcLogFilter $logFilter.
protected void | `write( $eventType , $eventSource , $eventCategory , $string )` This method writes the $string to a file.

### Methods

#### __construct

ezcLogFileWriter __construct( string $logDirectory , [string $defaultFile = null] , [int $maxLogRotationSize = 204800] , [int $maxLogFiles = 3] )

Constructs an ezcLogFileWriter.

The log files will be placed in the directory $logDirectory.

If the file $defaultFile is not null, log messages that are not map() 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. Log rotation can be disabled by setting $maxLogRotationSize to false.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$logDirectory` | string |
`$defaultFile` | string |
`$maxLogRotationSize` | int |
`$maxLogFiles` | int |

#### __destruct

void __destruct( )

Destructs the object and closes all open file handles.

#### openFile

resource openFile( string $fileName )

Returns the filehandle of the $fileName.

If the maximum file size is exceeded, the file will be rotated before opening.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$fileName` | string |

##### Exceptions:

Type | Description
--- | ---
`ezcBaseFilePermissionException` | if the file can't be opened, created, or when the directory is not writable.

#### rotateLog

bool rotateLog( string $fileName )

Rotates a log and returns true upon success.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$fileName` | string |

#### setFile

void setFile( ezcLogFilter $logFilter , string $fileName )

Maps the filename $fileName to the messages specified by the ezcLogFilter $logFilter.

Log messages that matches with the filter are written to the file $fileName.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$logFilter` | ezcLogFilter |
`$fileName` | string |

#### write

void write( int $eventType , string $eventSource , string $eventCategory , string $string )

This method writes the $string to a file.

The file to which the string will be written depends on the $eventType, $eventSource, and $eventCategory.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$eventType` | int |
`$eventSource` | string |
`$eventCategory` | string |
`$string` | string |

##### Exceptions:

Type | Description
--- | ---
`ezcLogWriterException` | if it was not possible to write to the log file.

Documentation generated by phpDocumentor 1.4.3