CakeLog config issue


#1

Hi ,
I’m trying to write message in my log file , but it writes in all log files which catch the same log type.
Issue like this https://stackoverflow.com/questions/12150078/cakelog-is-writing-to-multiple-files-but-i-want-it-to-write-to-only-the-one-i-s
Here is my settings:
Default :
CakeLog::config(‘debug’, array(
‘engine’ => ‘File’,
‘types’ => array(‘notice’, ‘info’, ‘debug’),
‘file’ => ‘debug’,
));
CakeLog::config(‘error’, array(
‘engine’ => ‘File’,
‘types’ => array(‘warning’, ‘error’, ‘critical’, ‘alert’, ‘emergency’),
‘file’ => ‘error’,
));

Mine:
CakeLog::config(‘income_log’, array(
‘engine’ => ‘File’,
‘types’ => array(‘warning’, ‘error’, ‘critical’, ‘alert’, ‘emergency’),
‘scopes’ => array(‘income_log’),
‘file’ => ‘income_log’,
));


If I use:
CakeLog::write(‘warning’, ‘Stuff is broken here’, ‘income_log’);
I see message “Stuff is broken here” in both log files error.log and income_log.log .

How to configure for write one message in ncome_log.log file?

THank you.
BTW, I red documentation, “scopes” should helps, but it doesn’t. (https://book.cakephp.org/2.0/en/core-libraries/logging.html#logging-scopes)


#2

I think you shouldn’t overwrite types (warnings 2 times, etc.) Please notice that in original config there are other types for error file and other for debug. Try create new, like ‘income’ or whatever.


#3

Hi,
I disagree with you, look in the documentation:
(https://book.cakephp.org/2.0/en/core-libraries/logging.html#logging-scopes)
CakeLog::warning(‘This gets written only to shops stream’, ‘orders’);

  • It’s the same like :
    CakeLog::write(‘warning’, ‘This gets written only to shops stream’, ‘orders’);
    I think “scopes” has to filter it.

BR.
Ruslan.


#4

Ok, you are right. I’m not familiar with v2 but I read on this doc page:
If a log message is written to an unknown scope, loggers that handle that level of message will log the message.

So maybe it think that there is no ‘income_log’ defined. Try delete underscore _ in definition and in usage place. Maybe it has something with camelCase, convention, etc.
Also try change name of the level, so it do not duplicate and maybe then you will see some errors?


#5

I found solution.
When you need write in “custom” log the same type of message , you have to define for each CakeLog configs types and scopes (for defaults too).

Thank you.