Caution: The documentation you are viewing is
for an older version of Zend Framework.
You can find the documentation of the current version at:
https://docs.zendframework.com/
Using the Factory to Create a Log - Zend_Log
In addition to direct instantiation, you may also use the static factory() method to instantiate a Log instance, as well as to configure attached writers and their filters. Using the factory, you can attach zero or more writers. Configuration may be passed as either an array or a Zend_Config instance. If you want to create an instance of a custom class (extending Zend_Log), you can pass a className option to the factory() method.
As an example:
The above will instantiate a logger with two writers, one for writing to a local file, another for sending data to Firebug. Each has an attached priority filter, with different maximum priorities.
By default, events are logged with the ISO 8601 date format. You can choose your own format with the option timestampFormat.
Each writer can be defined with the following keys:
The "short" name of a log writer; the name of the log writer minus the leading class prefix/namespace. See the "writerNamespace" entry below for more details. Examples: "Mock", "Stream", "Firebug".
An associative array of parameters to use when instantiating the log writer. Each log writer's factory() method will map these to constructor arguments, as noted below.
The class prefix/namespace to use when constructing the final log writer classname. By default, if this is not provided, "Zend_Log_Writer" is assumed; however, you can pass your own namespace if you are using a custom log writer.
The "short" name of a formatter to use with the given log writer; the name of the formatter minus the leading class prefix/namespace. See the "formatterNamespace" entry below for more details. Examples: "Simple", "Xml".
An associative array of parameters to use when instantiating the log formatter. Each log formatter's factory() method will map these to constructor arguments, as noted below.
The class prefix/namespace to use when constructing the final log formatter classname. By default, if this is not provided, "Zend_Log_Formatter" is assumed; however, you can pass your own namespace if you are using a custom log formatter.
The "short" name of a filter to use with the given log writer; the name of the filter minus the leading class prefix/namespace. See the "filterNamespace" entry below for more details. Examples: "Message", "Priority".
An associative array of parameters to use when instantiating the log filter. Each log filter's factory() method will map these to constructor arguments, as noted below.
The class prefix/namespace to use when constructing the final log filter classname. By default, if this is not provided, "Zend_Log_Filter" is assumed; however, you can pass your own namespace if you are using a custom log filter.
Each writer and each filter has specific options.
A Zend_Db_Adapter instance.
The name of the table in the RDBMS that will contain log entries.
An associative array mapping database table column names to log event fields.
This log writer takes no options; any provided will be ignored.
Option | Data Type | Default Value | Description |
---|---|---|---|
String | Zend_Mail | An Zend_Mail instance | |
charset | String | iso-8859-1 | Charset of the mail |
from | String or Array | NULL |
Sender of the mail
The parameters for Array type are :
|
to | String or Array | NULL | Recipient(s) of the mail |
cc | String or Array | NULL | Carbon copy recipient(s) of the mail |
bcc | String or Array | NULL | Blind carbon copy recipient(s) of the mail |
subject | String | NULL | Subject of the mail |
subjectPrependText | String | NULL | A summary of number of errors per priority is appended to the subject of the mail |
layout | String | NULL | An Zend_Layout instance |
layoutOptions | Array | NULL | See the section Zend_Layout Configuration Options |
layoutFormatter | String | NULL | An Zend_Log_Formatter_Interface instance |
This log writer takes no options; any provided will be ignored.
This log writer takes no options; any provided will be ignored.
A valid PHP stream identifier to which to log.
The I/O mode with which to log; defaults to "a", for "append".
Application name used by the syslog writer.
Facility used by the syslog writer.
This log writer takes no options; any provided will be ignored.
Regular expression that must be matched in order to log a message.
The maximum priority level by which messages will be logged.
The comparison operator by which to do priority comparisons; defaults to "<=".
This log filter takes no options; any provided will be ignored.
If you find yourself needing to write your own log writers and/or filters, you can make them compatible with Zend_Log::factory() very easily.
At the minimum, you need to implement Zend_Log_FactoryInterface, which expects a static factory() method that accepts a single argument, $config, which may be either an array or Zend_Config object. If your log writer extends Zend_Log_Writer_Abstract, or your log filter extends Zend_Log_Filter_Abstract, you will pick this up for free.
Then, simply define mappings between the accepted configuration and any constructor arguments. As an example:
Alternately, you could call appropriate setters after instantiation, but prior to returning the instance: