123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- if (!defined('STATUSNET')) {
- exit(1);
- }
- class LogFilterPlugin extends Plugin
- {
- public $default = true;
- public $priority = array();
- public $regex = array();
- function onPluginVersion(array &$versions)
- {
- $versions[] = array('name' => 'LogFilter',
- 'version' => GNUSOCIAL_VERSION,
- 'author' => 'Brion Vibber',
- 'homepage' => 'http://status.net/wiki/Plugin:LogFilter',
- 'rawdescription' =>
-
- _m('Provides server-side setting to filter log output by type or keyword.'));
- return true;
- }
-
- function onStartLog(&$priority, &$msg, &$filename)
- {
- if ($this->filter($priority, $msg)) {
-
- return true;
- } else {
-
- return false;
- }
- }
-
- function filter($priority, $msg)
- {
- $state = $this->default;
- if (array_key_exists($priority, $this->priority)) {
- $state = $this->priority[$priority];
- }
- foreach ($this->regex as $regex => $override) {
- if (preg_match($regex, $msg)) {
- $state = $override;
- }
- }
- return $state;
- }
- }
|