예제 #1
0
 /**
  * @param array $log[table_name, action, created_by, primary_key, description]
  * @return void, if cannot write to logs table, log file will be used
  * @throws \Cake\Database\Exception
  */
 function log_activity(array $log)
 {
     if (empty($log)) {
         return;
     }
     $Logs = Cake\ORM\TableRegistry::get('Logs');
     $logObj = $Logs->newEntity();
     $logObj->table_name = $log['table_name'];
     $logObj->action = $log['action'];
     $logObj->created_by = $log['created_by'];
     $logObj->recycle = false;
     $logObj->primary_key = $log['primary_key'];
     $logObj->description = $log['description'];
     if (!$Logs->save($logObj)) {
         \Cake\Log\Log::alert(__('Cannot write user login activity to logs: {0}', implode(',', $log)));
     }
 }
예제 #2
0
파일: LogTest.php 프로젝트: Slayug/castor
 /**
  * test convenience methods
  */
 public function testConvenienceMethods()
 {
     $this->_deleteLogs();
     Log::config('debug', ['engine' => 'File', 'path' => LOGS, 'types' => ['notice', 'info', 'debug'], 'file' => 'debug']);
     Log::config('error', ['engine' => 'File', 'path' => LOGS, 'types' => ['emergency', 'alert', 'critical', 'error', 'warning'], 'file' => 'error']);
     $testMessage = 'emergency message';
     Log::emergency($testMessage);
     $contents = file_get_contents(LOGS . 'error.log');
     $this->assertRegExp('/(Emergency|Critical): ' . $testMessage . '/', $contents);
     $this->assertFileNotExists(LOGS . 'debug.log');
     $this->_deleteLogs();
     $testMessage = 'alert message';
     Log::alert($testMessage);
     $contents = file_get_contents(LOGS . 'error.log');
     $this->assertRegExp('/(Alert|Critical): ' . $testMessage . '/', $contents);
     $this->assertFileNotExists(LOGS . 'debug.log');
     $this->_deleteLogs();
     $testMessage = 'critical message';
     Log::critical($testMessage);
     $contents = file_get_contents(LOGS . 'error.log');
     $this->assertContains('Critical: ' . $testMessage, $contents);
     $this->assertFileNotExists(LOGS . 'debug.log');
     $this->_deleteLogs();
     $testMessage = 'error message';
     Log::error($testMessage);
     $contents = file_get_contents(LOGS . 'error.log');
     $this->assertContains('Error: ' . $testMessage, $contents);
     $this->assertFileNotExists(LOGS . 'debug.log');
     $this->_deleteLogs();
     $testMessage = 'warning message';
     Log::warning($testMessage);
     $contents = file_get_contents(LOGS . 'error.log');
     $this->assertContains('Warning: ' . $testMessage, $contents);
     $this->assertFileNotExists(LOGS . 'debug.log');
     $this->_deleteLogs();
     $testMessage = 'notice message';
     Log::notice($testMessage);
     $contents = file_get_contents(LOGS . 'debug.log');
     $this->assertRegExp('/(Notice|Debug): ' . $testMessage . '/', $contents);
     $this->assertFileNotExists(LOGS . 'error.log');
     $this->_deleteLogs();
     $testMessage = 'info message';
     Log::info($testMessage);
     $contents = file_get_contents(LOGS . 'debug.log');
     $this->assertRegExp('/(Info|Debug): ' . $testMessage . '/', $contents);
     $this->assertFileNotExists(LOGS . 'error.log');
     $this->_deleteLogs();
     $testMessage = 'debug message';
     Log::debug($testMessage);
     $contents = file_get_contents(LOGS . 'debug.log');
     $this->assertContains('Debug: ' . $testMessage, $contents);
     $this->assertFileNotExists(LOGS . 'error.log');
     $this->_deleteLogs();
 }