2016-04-02 5 views
0

ich diese Protokollkonfiguration hinzugefügt haben:CakePHP: log Tive

Log::config('users', [ 
    'className' => 'FileLog', 
    'path' => LOGS, 
    'levels' => [], 
    'scopes' => ['users'], 
    'file' => 'users.log' 
]); 

Jetzt mit so etwas wie dieses Ich versuche zu schreiben,:

Log::warning(sprintf(
    '%s - Failed login with username `%s` and password `%s`', 
    $this->request->clientIp(), 
    $this->request->data('username'), 
    $this->request->data('password') 
), ['scope' => ['users']]); 

oder (es sollte gleich sein (oder nicht)):

Log::warning(sprintf(
    '%s - Failed login with username `%s` and password `%s`', 
    $this->request->clientIp(), 
    $this->request->data('username'), 
    $this->request->data('password') 
), 'users'); 

das Problem ist, dass das Protokoll sowohl geschrieben in users.log und error.log, während ich möchte dass das Protokoll geschrieben wird nur in der ersten (users.log).

Was ist los?

Antwort

0

Die Standardkonfiguration für CakePHP Log in Ihrem config/app.php gefunden ist:

// ... 
'Log' => [ 
    // ... 
    'error' => [ 
     'className' => 'Cake\Log\Engine\FileLog', 
     'path' => LOGS, 
     'file' => 'error', 
     'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'], 
    ], 
    // ... 

Welche App sagt alle "Warnung" Level-Protokolle error.log zu schreiben.

Wenn Sie benutzerdefinierte Protokollierung tun, müssen Sie möglicherweise einige Standardeinstellungen zu deaktivieren, um Ihre Anforderungen

+0

Ok, gerecht zu werden, damit ich verstehen, dass dieses Verhalten korrekt ist, und dies ist die Standardeinstellung. Dennoch scheint es mir nicht richtig, dass es auch funktionieren sollte. Kurz gesagt, wenn ich ein Fehlerprotokoll in zwei verschiedene Dateien schreiben will, kann ich nicht? –