blob: 0e5ec57a9fc9ffc36b9ac73c78367b12f456cf65 [file] [log] [blame]
=======================
LoggerAppenderDailyFile
=======================
``LoggerAppenderDailyFile`` writes logging events to a file which is rolled over
depending on the date/time of the logging event. By default, the file is rolled
over daily, hence the appender name. However, the appender can just as easily be
configured to roll over once a month, or even every minute if desired.
Unlike ``LoggerAppenderFile``, the target file is not static, and can change
during script execution as the time passes. Destination file is determined by
two parameters: ``file`` and ``datePattern``.
The path specified in the ``file`` parameter should contain the string ``%s``.
Each time an event is logged, this string will be substituted with the event's
date/time formatted according to ``datePattern`` and the event will be logged to
the resulting file path.
The date/time is formatted according to format string specified in the
``datePattern`` parameter. The format uses the same rules as the PHP `date()
<http://php.net/manual/en/function.date.php>`_ function. Any format string
supported by ``date()`` function may be used as a date pattern.
Layout
------
This appender requires a layout. If no layout is specified in configuration,
``LoggerLayoutSimple`` will be used by default.
Parameters
----------
The following parameters are available:
+-------------+---------+----------+---------+-------------------------------------------------------+
| Parameter | Type | Required | Default | Description |
+=============+=========+==========+=========+=======================================================+
| file | string | **Yes** | - | Path to the target file. Should contain a ``%s`` |
| | | | | which gets substituted by the date. |
+-------------+---------+----------+---------+-------------------------------------------------------+
| append | boolean | No | true | If set to true, the appender will append to the file, |
| | | | | otherwise the file contents will be overwritten. |
+-------------+---------+----------+---------+-------------------------------------------------------+
| datePattern | string | No | Ymd | Format for the date in the file path, follows |
| | | | | formatting rules used by the PHP date() function. |
+-------------+---------+----------+---------+-------------------------------------------------------+
Examples
--------
Consider the following configuration:
.. container:: tabs
.. rubric:: XML format
.. code-block:: xml
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="default" class="LoggerAppenderDailyFile">
<layout class="LoggerLayoutSimple" />
<param name="file" value="file-%s.log" />
<param name="datePattern" value="Y-m-d" />
</appender>
<root>
<appender_ref ref="default" />
</root>
</configuration>
.. rubric:: PHP format
.. code-block:: php
array(
'appenders' => array(
'default' => array(
'class' => 'LoggerAppenderDailyFile',
'layout' => array(
'class' => 'LoggerLayoutSimple',
),
'params' => array(
'datePattern' => 'Y-m-d',
'file' => 'file-%s.log',
),
),
),
'rootLogger' => array(
'appenders' => array('default'),
),
);
In this example, the date pattern is set to ``Y-m-d`` (year, month, day) and
the target file to ``daily.%s.log``.
Each time this appender receives a logging event, it will:
* Format the event date/time according to the configured date pattern. Let's say
this sample is run during 10th of July 2012, then the formatted date is
``2012-07-10``
* Replace the ``%s`` in the filename with the formated date to get the target
file. In this case, the target file will be ``daily.2012-07-10.log``.
* Write to the target file.
If you continue logging using the given configuration, the appender will
continue to log to ``daily.2012-07-10.log``, until the date changes. At that
point it will start logging to ``daily.2012-07-11.log``.
Similarly, date pattern ``Y-m`` will result in filenames like
``file-2012-07.log``, which will result in monthly rollover.
Hours, minutes and seconds can also be used. Pattern ``Y-m-d.H.i.s`` will result
in filenames similar to ``file-2012-07-03.10.37.15.log``. In this case, a new
file will be created each second.
.. Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.