63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
/*
 | 
						|
 * This file is part of the Monolog package.
 | 
						|
 *
 | 
						|
 * (c) Jordi Boggiano <j.boggiano@seld.be>
 | 
						|
 *
 | 
						|
 * For the full copyright and license information, please view the LICENSE
 | 
						|
 * file that was distributed with this source code.
 | 
						|
 */
 | 
						|
 | 
						|
 namespace Monolog\Handler;
 | 
						|
 
 | 
						|
 use Monolog\Logger;
 | 
						|
 | 
						|
/**
 | 
						|
 * Inspired on LogEntriesHandler.
 | 
						|
 *
 | 
						|
 * @author Robert Kaufmann III <rok3@rok3.me>
 | 
						|
 * @author Gabriel Machado <gabriel.ms1@hotmail.com>
 | 
						|
 */
 | 
						|
class InsightOpsHandler extends SocketHandler
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var string
 | 
						|
     */
 | 
						|
    protected $logToken;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @param string $token  Log token supplied by InsightOps
 | 
						|
     * @param string $region Region where InsightOps account is hosted. Could be 'us' or 'eu'.
 | 
						|
     * @param bool   $useSSL Whether or not SSL encryption should be used
 | 
						|
     * @param int    $level  The minimum logging level to trigger this handler
 | 
						|
     * @param bool   $bubble Whether or not messages that are handled should bubble up the stack.
 | 
						|
     *
 | 
						|
     * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing
 | 
						|
     */
 | 
						|
    public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true)
 | 
						|
    {
 | 
						|
        if ($useSSL && !extension_loaded('openssl')) {
 | 
						|
            throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler');
 | 
						|
        }
 | 
						|
 | 
						|
        $endpoint = $useSSL
 | 
						|
            ? 'ssl://' . $region . '.data.logs.insight.rapid7.com:443'
 | 
						|
            : $region . '.data.logs.insight.rapid7.com:80';
 | 
						|
 | 
						|
        parent::__construct($endpoint, $level, $bubble);
 | 
						|
        $this->logToken = $token;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * {@inheritdoc}
 | 
						|
     *
 | 
						|
     * @param  array  $record
 | 
						|
     * @return string
 | 
						|
     */
 | 
						|
    protected function generateDataStream($record)
 | 
						|
    {
 | 
						|
        return $this->logToken . ' ' . $record['formatted'];
 | 
						|
    }
 | 
						|
}
 |