On 19 February 2013 21:23, Jan Galler <jagal...@icloud.com> wrote:
> Hi everyone,

Hi Jan!

> I'm trying to create a logger that covers two outputs. The first one is
> a database (so every stuff should go there). And now I try to add an
> appender that sends every log-event with an level higher 'warn'.
>
> But I really don't get it working?! I'm doing the following code (PHP):
>
> --snip--
>

Under 'appenders' you have an array with two identical keys, basically
you do this:

'appenders' => array(
    'default' => ...,
    'default' => ...,
)

So the second one overrides the first. You should name them
differently, e.g. 'dbappender' and 'emailappender' (or whatever else
you like).

Finally, to link both appenders to the root logger, do this:

'rootLogger' => array(
    'appenders' => array('dbappender', 'emailappender'),
),

Also, you don't need to use filters in this case, just set the
appender threshold to 'warn' and it will filter out levels under
'warn'. To do this, replace 'filters' with:
'threshold' => 'warn'

Here's the whole shebang:

Logger::configure(
    array(
        'appenders' => array(
            'dbappender' => array(
                'class' => 'LoggerAppenderPDO',
                'params' => array(
                    'dsn' =>
'mysql:host='.$logHost.';port='.$logPort.';dbname='.$logName,
                    'user' => $logUser,
                    'password' => $logPass,
                    'table' => 'log4php_log',
                ),
            ),
            'emailappender' => array(
                'class' => 'LoggerAppenderMailEvent',
                'layout' => array(
                    'class' => 'LoggerLayoutSimple',
                ),
                'params' => array(
                    'to' => 'jagal...@icloud.com',
                    'from' => 'log...@asdf.com'
                ),
                'threshold' => 'warn'
            ),
        ),
        'rootLogger' => array(
            'appenders' => array('dbappender', 'emailappender'),
        )
    )
);


Try it out and see if it works. ;)

Regards,
Ivan

Reply via email to