Example #1
1
<?php

/**
 * This file is part of monolog2slackwebhook repository
 *
 * (c) Ronny Herrgesell
 *
 * For the full copyright and license information, please view the LICENSE
 *
 * @Author: ronny
 * @Date: 05.08.16
 */
use Sleipi\Monolog2Slack\Message\SlackMessage;
use Sleipi\Monolog2Slack\Message\Field;
use Sleipi\Monolog2Slack\SlackMessageFormatter;
use Sleipi\Monolog2Slack\SlackWebhookHandler;
require_once __DIR__ . '/../vendor/autoload.php';
$slackWebhookUrl = "https://hooks.slack.com/services/<token>";
$initSlackMessage = (new SlackMessage())->setFooter("PubTonic")->setFooterIcon("https://tonic.com/img/social/202x202.png");
$slack = new SlackWebhookHandler($slackWebhookUrl, \Monolog\Logger::DEBUG);
$slack->setFormatter(new SlackMessageFormatter($initSlackMessage));
$logger = new \Monolog\Logger('slack', [$slack]);
$logger->debug("My Debug <http://www.foo.com|Link>");
$logger->info('My Info Message', [(new Field())->setTitle('Priority')->setValue('Small Info'), (new Field())->setTitle('Info')->setValue('Another small Info')]);
$logger->notice('My Notice Message', [(new SlackMessage())->setPretext('Irgendwas ist passiert')]);
$logger->warning("My Multiline\nWarning Message");
$logger->error('My Error Message for <!everyone>');
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function onClose(ConnectionInterface $conn)
 {
     $this->_i--;
     $this->_in->info('onClose', ['#open' => $this->_i, 'id' => $conn->resourceId]);
     $decorated = $this->_connections[$conn];
     $this->_connections->detach($conn);
     $this->_component->onClose($decorated);
 }
Example #3
0
 /**
  * CreateJson()
  *
  * Takes HTML content as input and extracts product contents as per Sainsbury's product
  * HTML structure.  Outputs content to file name in JSON format as per requirements.
  *
  * @param string $htmlContent  HTML content to process
  *
  * @return none
  *
  *
  */
 function CreateJson($htmlContent)
 {
     $html = new simple_html_dom();
     $htmlDomForDest = new simple_html_dom();
     // Open file for writing output json
     $outFile = fopen("./grocery.json", "w");
     if (!$outFile) {
         $log->addError("Failed to open output file");
         exit(0);
     }
     $this->log->info("Processing HTML");
     $html->load($htmlContent);
     $productList = array();
     $priceTotal = 0.0;
     $price = 0.0;
     // Write start of output JSON to file
     fwrite($outFile, "{" . PHP_EOL . "\t\"results\":[" . PHP_EOL);
     // Loop through each li that contains a product
     //
     // Note: As this has been written on a system using PHP 5.3,
     // the JSON PRETTY_PRINT isn't available for json_encode
     // option in't available so JSON is created manually without using json_encode
     //
     foreach ($html->find("ul[class=productLister]") as $ul) {
         $ulElements = $ul->find("li");
         $last_key = end(array_keys($ulElements));
         // foreach ($ul->find("li") as $product)
         foreach ($ulElements as $product) {
             //
             // Assign required variables by finding the relevant data
             //
             // Get price and format so we have just a float number that can be used for
             // cumalative total price of all products
             $price = strip_tags(trim($product->find('p[class=pricePerUnit] [!abbr]', 0)->plaintext));
             $price = preg_replace("/[^0-9\\.]/", "", $price);
             $priceTotal += $price;
             // Get link and title for product
             $link = $product->find('div[class=productInfo]', 0)->find('h3', 0)->find('a', 0);
             $title = trim($link->plaintext);
             // Get the HTML of the destination product link to get size and description
             $htmlDest = $this->GetWebPage($link->href);
             $size = strlen($htmlDest);
             $size = number_format($size / 1024, 2);
             $htmlDomForDest->load($htmlDest);
             $description = $htmlDomForDest->find("meta[name='description']", 0)->content;
             $description = html_entity_decode($description, ENT_QUOTES);
             // Write the product data to the file retrieved
             $productOutput = "\t\t{" . PHP_EOL . "\t\t\t\"title:\": \"{$title}\"," . PHP_EOL . "\t\t\t\"size\": \"" . $size . "kb\"," . PHP_EOL . "\t\t\t\"unit_price\": " . number_format((double) $price, 2, '.', '') . "," . PHP_EOL . "\t\t\t\"description\": \"{$description}\"" . PHP_EOL . "\t\t}";
             if ($product !== end($ulElements)) {
                 $productOutput .= ",";
             }
             fwrite($outFile, $productOutput . PHP_EOL);
         }
     }
     // Write remaining output, including price total to file
     fwrite($outFile, "\t], " . PHP_EOL . "\t\"total\": " . $priceTotal . PHP_EOL);
     fwrite($outFile, "}" . PHP_EOL);
     fclose($outFile);
 }
Example #4
0
 public static function push($info)
 {
     $logFile = storage_path('logs/techdata-logs-' . date('Y-m-d') . '.log');
     if (!file_exists($logFile)) {
         file_put_contents($logFile, "");
     }
     $monolog = new \Monolog\Logger('log');
     $monolog->pushHandler(new StreamHandler($logFile), \Monolog\Logger::INFO);
     $monolog->info($info);
 }
 /**
  * Bootstrap any application services.
  */
 public function boot()
 {
     /**
      * Query logging
      */
     if (Config::get('database.log_queries')) {
         $queryLogger = new \Monolog\Logger('Queries');
         $fileHandler = new \Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/query.log');
         $lineFormatter = new \Monolog\Formatter\LineFormatter("%message% %context% %extra%\n", null, true, true);
         $fileHandler->setFormatter($lineFormatter);
         $queryLogger->pushHandler($fileHandler);
         if (php_sapi_name() !== 'cli') {
             $queryLogger->info("\n\n=======\n{$_SERVER['REQUEST_METHOD']}\n{$_SERVER['REQUEST_URI']}\n" . Request::server('HTTP_REFERER') . "\n" . date('Y-m-d H:i:s') . "\n=========");
         }
         Event::listen("illuminate.query", function ($query, $bindings, $time) use($queryLogger) {
             $queryLogger->info($query);
             $queryLogger->info("\t{$time} seconds", $bindings);
         });
     }
 }
 protected function log($message)
 {
     $tz = new \DateTimeZone('UTC');
     $log = new \Monolog\Logger(__NAMESPACE__);
     $log->setTimezone($tz);
     $error_handler = new \Monolog\Handler\ErrorLogHandler();
     $log->pushHandler($error_handler);
     // adds url,client ip,http_method,server and referrer to each log
     $web_processor = new \Monolog\Processor\WebProcessor();
     $log->pushProcessor($web_processor);
     // adds a unique identifier to each log
     // e.g. "uid":"0ce8d6d"
     $uid_processor = new \Monolog\Processor\UidProcessor();
     $log->pushProcessor($uid_processor);
     $log->info(get_called_class() . ' ' . $message, $this->getContext());
 }
Example #7
0
$logger = new \Monolog\Logger('console');
$logger->pushHandler(new \Monolog\Handler\StreamHandler(fopen('php://stderr', 'w')));
$launcherEngine = new \PHPVCSControl\Support\Launchers\Exec($logger, new \PHPVCSControl\Support\Filesystem());
$demoRepository = \PHPVCSControl\Git\Repository::build($launcherEngine, $exePath, $source, $branch, $path);
//////////////////////////////////////////////////
// Do sample actions
//////////////////////////////////////////////////
// Clone repository
$logger->addInfo(sprintf('Cloning demo repository [%s]', $source));
$demoRepository->cloneRepository();
// Check if the repository is deployed
$isDeployed = $demoRepository->isDeployed();
$logger->addInfo(sprintf('Is the repository deployed? [%s]', $isDeployed ? 'yes' : 'no'));
// Get the repository's configuration
$logger->addInfo('Get configuration: ' . $demoRepository->getConfiguration()->toJSON());
// Fetch
$demoRepository->fetch();
$logger->addInfo('Fetched');
// Get the commits
$commitCollection = $demoRepository->commits('2000-01-01', VCS_FLAG_NO_MERGES + VCS_FLAG_NO_WALK + VCS_FLAG_TAGS);
$logger->addInfo('Get commit count: ' . $commitCollection->count());
// List commits' details
$commitCollection->forAll(function ($i, $item) use($logger) {
    $logger->info($item->sha . ' [' . $item->date . '] [lines added: ' . $item->linesAdded . '] [lines removed: ' . $item->linesRemoved . ']');
    return true;
});
// Checkout to a commit ID
$index = mt_rand(0, $commitCollection->count() - 1);
$commitItem = $commitCollection->get($index);
$demoRepository->checkout($commitItem->sha);
$logger->addInfo('Checkout repo to commit index [' . $index . '], with commitID [' . $commitItem->sha . '] and subject [' . $commitItem->subject . ']');
<?php

include __DIR__ . '/vendor/autoload.php';
include __DIR__ . '/../../bootstrap.php';
$debugbarRenderer->setBaseUrl('../../../src/DebugBar/Resources');
$logger = new Monolog\Logger('demo');
$debugbar->addCollector(new DebugBar\Bridge\MonologCollector($logger));
$logger->info('hello world');
render_demo_page();
 /**
  * @param \Closure|Monolog\Logger $logger
  * @return void
  */
 public function setLogger($logger)
 {
     if ($logger instanceof Monolog\Logger) {
         $this->logger = function ($message, $level) use($logger) {
             switch ($level) {
                 case 'info':
                     $logger->info($message);
                     return;
                 case 'warn':
                 default:
                     $logger->warn($message);
                     return;
             }
         };
     } else {
         $this->logger = $logger;
     }
 }
Example #10
0
/**
 * postpone message on RuntimeException
 */
$dispatcher->addListener('kemer.error', function (GenericEvent $event, $eventName, $dispatcher) {
    if ($event["error"] instanceof \RuntimeException) {
        $dispatcher->dispatch(AmqpAddons\AddonsEvent::POSTPONE, $event->getSubject());
    }
}, -1);
/**
 * reject message + requeue (if not requeued before) on error
 */
$dispatcher->addListener('kemer.error', function (GenericEvent $event, $eventName, $dispatcher) {
    $subject = $event->getSubject();
    if (!$subject->isConsumed()) {
        $subject->reject($subject->isRedelivery() ? false : AMQP_REQUEUE);
    }
}, -2);
/**
 * Catch ConsumerException here to get last consumed event
 */
try {
    $consumer->listen($queue, $exchange);
} catch (Amqp\Exceptions\ConsumerException $e) {
    $event = $e->getEvent();
    if (!$event->isConsumed()) {
        $event->reject($event->isRedelivery() ? false : AMQP_REQUEUE);
    }
} catch (Amqp\Exceptions\NotConsumedException $e) {
    $logger->info(sprintf("%s@%s NOT FOUND \n", $e->getEvent()->getExchangeName(), $e->getEvent()->getRoutingKey()));
    $e->getEvent()->reject(false);
}
Example #11
0
}
if (!file_exists($config)) {
    throw new InvalidArgumentException('Missing ' . $config . ' file, please create one in the same folder as the application');
}
chdir(dirname($config));
$config = json_decode(file_get_contents($config));
if ($config->debug) {
    $logLevel = \Monolog\Logger::DEBUG;
} else {
    $logLevel = \Monolog\Logger::WARNING;
}
// Set up logging to file
$log = new \Monolog\Logger('xmr');
$log->pushHandler(new \Monolog\Handler\StreamHandler('log.txt', $logLevel));
$log->pushHandler(new \Monolog\Handler\StreamHandler(STDOUT, $logLevel));
$log->info(sprintf('Starting up - listening for CMS on %s.', $config->listenOn));
try {
    $loop = React\EventLoop\Factory::create();
    $context = new React\ZMQ\Context($loop);
    // Reply socket for requests from CMS
    $responder = $context->getSocket(ZMQ::SOCKET_REP);
    $responder->bind($config->listenOn);
    // Pub socket for messages to Players (subs)
    $publisher = $context->getSocket(ZMQ::SOCKET_PUB);
    foreach ($config->pubOn as $pubOn) {
        $log->info(sprintf('Bind to %s for Publish.', $pubOn));
        $publisher->bind($pubOn);
    }
    // REP
    $responder->on('error', function ($e) use($log) {
        $log->error($e->getMessage());
Example #12
0
require "vendor/autoload.php";
use Slim\Slim;
use Slim\Extras\Views\Twig;
$log = new Monolog\Logger('log');
$log->pushHandler(new Monolog\Handler\StreamHandler('log/wol.log', Monolog\Logger::INFO));
$app = new \Slim\Slim(['view' => new Twig(), 'templates.path' => 'template']);
//
// request
//
$app->get("/", function () use($app, $log) {
    require_once 'app/models/WakeUpLanManager.php';
    $wol = new WakeUpLanManager($log);
    echo $app->render('index.html', ['wol_list' => $wol->getWolJson()]);
});
$app->get("/wakeup/:id", function ($id) use($app, $log) {
    $log->info('START');
    require_once 'app/models/WakeUpLanManager.php';
    $wol = new WakeUpLanManager($log);
    // WOL実行
    $result = $wol->postWol($id, $wol->getWolJson());
    $app->response->headers->set('Content-Type', 'application/json');
    $app->response->setBody(json_encode(['result' => 'ok']));
});
$app->get("/ping/:id", function ($id = null) use($app, $log) {
    $log->info('START');
    require_once 'app/models/WakeUpLanManager.php';
    $wol = new WakeUpLanManager($log);
    /// ping チェック
    if (empty($id)) {
        $result = $wol->pingCmds($wol->getWolJson());
    } else {
 public function __construct()
 {
     $queryLogger = new \Monolog\Logger('Queries');
     $fileHandler = new \Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/query.log');
     $lineFormatter = new \Monolog\Formatter\LineFormatter("%message% %context% %extra%\n", null, true, true);
     $fileHandler->setFormatter($lineFormatter);
     $queryLogger->pushHandler($fileHandler);
     if (php_sapi_name() !== 'cli') {
         $queryLogger->info("\n\n=======\n{$_SERVER['REQUEST_METHOD']}\n{$_SERVER['REQUEST_URI']}" . " \n" . Request::server('HTTP_REFERER') . "\n" . date('Y-m-d H:i:s') . "\n=========");
     }
     Event::listen('cache.missed', function ($key) use($queryLogger) {
         $queryLogger->info('cache.missed');
         $queryLogger->info("\t" . $key);
     });
     Event::listen('cache.hit', function ($key) use($queryLogger) {
         $queryLogger->info('cache.hit');
         $queryLogger->info("\t" . $key);
     });
     Event::listen('cache.write', function ($key) use($queryLogger) {
         $queryLogger->info('cache.write');
         $queryLogger->info("\t" . $key);
     });
     Event::listen('cache.delete', function ($key) use($queryLogger) {
         $queryLogger->info('cache.delete');
         $queryLogger->info("\t" . $key);
     });
     Event::listen("illuminate.query", function ($query, $bindings, $time) use($queryLogger) {
         $queryLogger->info("illuminate.query");
         $queryLogger->info("\t" . $query, $bindings);
         $queryLogger->info("\t\t{$time} ms", $bindings);
     });
 }
Example #14
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
$opts = parseArgs($argv);
if (isset($opts['help']) || !isset($opts['pid'])) {
    echo "Usage: {$argv['0']} [help] [log:<path-to-log-file>] [stop] pid:<path-to-pid-file>\n";
    exit(0);
}
$logHandler = isset($opts['log']) ? new \Monolog\Handler\StreamHandler('file://' . $opts['log']) : new \Monolog\Handler\NullHandler();
$logger = new \Monolog\Logger("DetachedExample", array($logHandler));
$logger->info("Building");
$builder = new Beelzebub\Daemon\Builder();
$daemon = $builder->setLogger($logger)->addWorker('hello-world', array('interval' => 1, 'loop' => function (Beelzebub\Worker $w) {
    $w->getDaemon()->getLogger()->info("Hello world");
}))->build();
$pidfile = new \Beelzebub\Wrapper\File($opts['pid']);
// stop
if (isset($opts['stop'])) {
    echo "Stopping running daemon: ";
    echo ($daemon->halt($pidfile) ? "OK" : "FAIL") . "\n";
} else {
    echo "Starting detached daemon: ";
    try {
        $pid = $daemon->runDetached($pidfile);
        echo " [pid: {$pid}, file: {$opts['pid']}]\n";
    } catch (\Exception $e) {
        echo " FAIL: " . $e->getMessage() . "\n";
    }
}
function parseArgs(array $argv)
{