rap2hpoutre / laravel-log-viewer

:dromedary_camel: Laravel log viewer
MIT License
3.14k stars 373 forks source link

What about extra fields? preg_match() it to extra index? #61

Closed arturmamedov closed 8 years ago

arturmamedov commented 8 years ago

Now we have a preg_match() that extract all things to $current array

preg_match('/^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\].*?\.' . $level_key . ': (.*?)( in .*?:[0-9]+)?$/', $h[$i], $current);

with this results

$log[] = array(
    'level' => $level_value,
    'level_class' => self::$levels_classes[$level_value],
    'level_img' => self::$levels_imgs[$level_value],
    'date' => $current[1],
    'text' => $current[2],
    'in_file' => isset($current[4]) ? $current[4] : null,
    'stack' => preg_replace("/^\n*/", '', $log_data[$i])
);

And all okay, but if i adding processors:

// processor, adding URI, IP address etc. to the log
$monolog->pushProcessor(new Monolog\Processor\WebProcessor);
// processor, memory usage
$monolog->pushProcessor(new Monolog\Processor\MemoryUsageProcessor);

In our log we now have two new items in message ex:

Logger message! [] {"memory_usage":"19,25 MB","url":"/it/dashboard/clients/clients","ip":"95.254.111.11","http_method":"GET","server":"www.server.com","referrer":null,"unique_id":"Vzs4x1BYW8cBBEH123gAAABL"} 

What if we add something to preg_match() for capture log extra and take it separately?

ex:

  preg_match('/^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\].*?\.' . $level_key . ': (.*?) ( in .*?:[0-9]+)?  (\{.*\}?)$/', $h[$i], $current);

I tryed but need help from someone more expert than me. Log message with stack trace are different? How put an optional reg_exp in case if trace/in_file are not present?

If this thing are interesting i can investigate and make a pr.

rap2hpoutre commented 8 years ago

PR here: https://github.com/rap2hpoutre/laravel-log-viewer/pull/62 (thank you!)

arturmamedov commented 5 years ago

Nothing on this?