Exemple #1
0
 protected function write(array $record)
 {
     $hasLevel = in_array($record['level_name'], config('glog.levels'));
     $hasChannel = in_array($record['message'], config('glog.channels'));
     $notifications = config('glog.notification');
     $send_notification = 0;
     foreach ($notifications as $key => $value) {
         if ($key === $record['message']) {
             $send_notification = in_array($record['level_name'], $value);
         }
     }
     if ($send_notification) {
         $messages = config('glog.messages');
         $data = ['record' => $record, 'action' => isset($messages[$record['message']]) ? $messages[$record['message']] : $record['message']];
         Mail::send("glog::email.notification", $data, function ($message) {
             $message->to(config('glog.mail_to'))->subject(config('glog.mail_subject'));
         });
     }
     if ($hasLevel && $hasChannel) {
         if (config('glog.service', 'local') === 'remote') {
             $this->post_remote($record);
         } else {
             if (config('glog.db_connection') == 'mongodb') {
                 MongoDbLogger::create(['channel' => $record['message'], 'context' => json_encode($record['context']), 'level' => $record['level'], 'level_name' => $record['level_name']]);
             } else {
                 MySqlLogger::create(['channel' => $record['message'], 'context' => json_encode($record['context']), 'level' => $record['level'], 'level_name' => $record['level_name']]);
             }
         }
     }
 }