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:
- {
- // Call parent constructor. (In this case, it possible to omit the constructor.)
- public function __construct($dir, $file = null, $maxSize = 204800, $maxFiles = 3 )
- {
- parent::__construct($dir, $file, $maxSize, $maxFiles );
- }
- // Implement the ezcLogWriter interface:
- public function writeLogMessage( $message, $type, $source, $category, $extraInfo = array() )
- {
- // Create a message
- $res = print_r( array( "message" => $message, "type" => $type, "source" => $source, "category" => $category ), true );
- // And call the parent class
- $this->write( $type, $source, $category, $res );
- }
- }
Source for this file: /EventLog/src/writers/writer_file.php
Implements interfaces:
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
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
Destructs the object and closes all open file handles.
openFile
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
Rotates a log and returns true upon success.
Parameters:
Name | Type | Description |
---|---|---|
$fileName |
string |
setFile
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
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. |