Esempio n. 1
0
File: log.php Progetto: wushian/MDD
 /**
  * Initialize the class
  */
 public static function _init()
 {
     // load the file config
     \Config::load('file', true);
     // determine the name and location of the logfile
     $filepath = \Config::get('log_path') . date('Y/m') . '/';
     if (!is_dir($filepath)) {
         @mkdir($filepath, \Config::get('file.chmod.folders', 0777), true);
     }
     $filename = $filepath . date('d') . '.php';
     if (!($handle = @fopen($filename, 'a'))) {
         die('Fatal error: could not create or access the log file (' . $filename . ')<br />check your file system permissions!');
     }
     if (!filesize($filename)) {
         fwrite($handle, "<?php defined('COREPATH') or exit('No direct script access allowed'); ?>" . PHP_EOL . PHP_EOL);
         chmod($filename, \Config::get('file.chmod.files', 0666));
     }
     fclose($handle);
     // create the monolog instance
     static::$monolog = new \Monolog\Logger('fuelphp');
     // create the streamhandler, and activate the handler
     $stream = new \Monolog\Handler\StreamHandler($filename, \Monolog\Logger::DEBUG);
     $formatter = new \Monolog\Formatter\LineFormatter("%level_name% - %datetime% --> %message%" . PHP_EOL, "Y-m-d H:i:s");
     $stream->setFormatter($formatter);
     static::$monolog->pushHandler($stream);
 }
Esempio n. 2
0
 /**
  *
  */
 public function buildLogger($channel, $handlers = null)
 {
     // Create a new logger
     $logger = new \Monolog\Logger($channel);
     // Setup processors
     $logger->pushProcessor(new \Monolog\Processor\IntrospectionProcessor());
     $logger->pushProcessor(new \Monolog\Processor\ProcessIdProcessor());
     $logger->pushProcessor(new \Monolog\Processor\WebProcessor());
     // Are we in CLI/verbose mode?
     if (\z\app()->isCli() === true) {
         // Define the level
         if (\z\app()->isVerbose() === true) {
             $level = \Monolog\Logger::DEBUG;
         } else {
             $level = \Monolog\Logger::INFO;
         }
         // Redirect to standard output
         $handler = new \Monolog\Handler\StreamHandler('php://stdout', $level);
         // Format for CLI
         $handler->setFormatter(new \fbenard\Zero\Services\Formatters\CliLogFormatter());
     } else {
         // Redirect to /dev/null
         $handler = new \Monolog\Handler\NullHandler();
     }
     // Push the handler
     $logger->pushHandler($handler);
     // Parse each handler
     if (is_array($handlers) === true) {
         foreach ($handlers as $handler) {
             // Push the handler
             $logger->pushHandler($handler);
         }
     }
     return $logger;
 }
Esempio n. 3
0
 /**
  * @param string $name
  * @param array  $handlers
  * @param array  $processors
  */
 function __construct($name = 'main', array $handlers = array(), array $processors = array())
 {
     /* Create new logger */
     parent::__construct($name, $handlers, $processors);
     /* Add default, console handler */
     $handler = new \Monolog\Handler\StreamHandler('php://stderr', \Monolog\Logger::DEBUG);
     $handler->setFormatter(new \Monolog\Formatter\LineFormatter("[%datetime%] [%channel%.%level_name%] -- %message%\n"));
     $this->pushHandler($handler);
 }
Esempio n. 4
0
 /**
  *
  * @return \Monolog\Logger
  */
 public static function default_logger()
 {
     $name = 'chamilo';
     $result = new Logger($name);
     $handler = new Monolog\Handler\StreamHandler('php://stderr');
     $handler->setFormatter(new Monolog\Formatter\LineFormatter('[%datetime%] [%level_name%] [%channel%] %message%' . PHP_EOL, 'Y-m-d H:i:s'));
     //%context% %extra%
     $result->pushHandler($handler);
     return $result;
 }
/**
 * Gets the logger
 * @return Monolog\Logger
 */
function getMonolog()
{
    $dateFormat = "Y-m-d  H:m:i";
    // This is the original format of monolog documentation
    // https://github.com/Seldaek/monolog/blob/master/doc/usage.md#customizing-log-format
    // $output = "%datetime% > %level_name% > %message% %context% %extra%\n";
    $output = "[%datetime%] LADYBUG: %message% %context% %extra%\n";
    $formatter = new \Monolog\Formatter\LineFormatter($output, $dateFormat, true);
    $stream = new \Monolog\Handler\StreamHandler($GLOBALS['PATHLADYBUGPLUGINMONOLOG'], \Monolog\Logger::DEBUG);
    $stream->setFormatter($formatter);
    $ladyLogger = new \Monolog\Logger('ladybug');
    $ladyLogger->pushHandler($stream);
    return $ladyLogger;
}
Esempio n. 6
0
 /**
  * Initialize the class
  */
 public static function _init()
 {
     // load the file config
     \Config::load('file', true);
     // make sure the log directories exist
     try {
         // determine the name and location of the logfile
         $path = \Config::get('log_path', APPPATH . 'logs' . DS);
         $filename = \Config::get('log_file', null);
         if (empty($filename)) {
             $rootpath = $path . date('Y') . DS;
             $filepath = $path . date('Y/m') . DS;
             $filename = $filepath . date('d') . '.php';
         } else {
             $rootpath = $path;
             $filepath = $path;
             $filename = $path . $filename;
         }
         // get the required folder permissions
         $permission = \Config::get('file.chmod.folders', 0777);
         if (!is_dir($rootpath)) {
             mkdir($rootpath, 0777, true);
             chmod($rootpath, $permission);
         }
         if (!is_dir($filepath)) {
             mkdir($filepath, 0777, true);
             chmod($filepath, $permission);
         }
         $handle = fopen($filename, 'a');
     } catch (\Exception $e) {
         \Config::set('log_threshold', \Fuel::L_NONE);
         throw new \FuelException('Unable to create or write to the log file. Please check the permissions on ' . \Config::get('log_path') . '. (' . $e->getMessage() . ')');
     }
     if (!filesize($filename)) {
         fwrite($handle, "<?php defined('COREPATH') or exit('No direct script access allowed'); ?>" . PHP_EOL . PHP_EOL);
         chmod($filename, \Config::get('file.chmod.files', 0666));
     }
     fclose($handle);
     // create the monolog instance
     static::$monolog = new \Monolog\Logger('fuelphp');
     // create the streamhandler, and activate the handler
     $stream = new \Monolog\Handler\StreamHandler($filename, \Monolog\Logger::DEBUG);
     $formatter = new \Monolog\Formatter\LineFormatter("%level_name% - %datetime% --> %message%" . PHP_EOL, "Y-m-d H:i:s");
     $stream->setFormatter($formatter);
     static::$monolog->pushHandler($stream);
 }
Esempio n. 7
0
 /**
  * Set the client Logger
  *
  * @throws PhpOrientException
  */
 public function setLogger()
 {
     if (ClientConstants::$LOGGING) {
         if ($this->_logger === null) {
             if (!class_exists('\\Monolog\\Logger', true)) {
                 throw new PhpOrientException("No development environment installed from composer. Try 'composer update' or remove logging from client constants ( \\PhpOrient\\Configuration\\Constants::\$LOGGING )");
             }
             $this->_logger = new \Monolog\Logger(get_class($this));
             $file_path = "php://stdout";
             if (ClientConstants::$LOG_FILE_PATH) {
                 $file_path = ClientConstants::$LOG_FILE_PATH;
             }
             $handler = new \Monolog\Handler\StreamHandler($file_path, \Monolog\Logger::DEBUG);
             $handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, false, true));
             $this->_logger->pushHandler($handler);
         }
     } else {
         $this->_logger = new NullLogger();
     }
 }
Esempio n. 8
0
function makeLogger($channel, $level)
{
    $logger = new Monolog\Logger($channel);
    $file = defined('LOGGING_LOG_FILE') ? LOGGING_LOG_FILE : LOGGING_GLOBAL_LOG_FILE;
    if (!file_exists($file)) {
        if (!file_exists(dirname($file))) {
            mkdir(dirname($file), 755, true);
        }
        touch($file);
    }
    $format = defined('LOGGING_FORMAT') ? LOGGING_FORMAT : LOGGING_GLOBAL_FORMAT;
    $formatter = new Monolog\Formatter\LineFormatter($format);
    if (defined('LOGGING_FORK_TO_STDOUT') && LOGGING_FORK_TO_STDOUT) {
        $handler = new Monolog\Handler\StreamHandler(fopen('php://stdout', 'w'), $level);
        $handler->setFormatter($formatter);
        $logger->pushHandler($handler);
    }
    $handler = new Monolog\Handler\StreamHandler($file, $level);
    $handler->setFormatter($formatter);
    $logger->pushHandler($handler);
    return $logger;
}
Esempio n. 9
0
 /**
  * Initialize the class
  */
 public static function _init()
 {
     // load the file config
     \Config::load('file', true);
     // determine the name and location of the logfile
     $filepath = \Config::get('log_path') . date('Y/m') . '/';
     if (!is_dir($filepath)) {
         $old = umask(0);
         mkdir($filepath, \Config::get('file.chmod.folders', 0777), true);
         umask($old);
     }
     $filename = $filepath . date('d') . '.php';
     if (!file_exists($filename)) {
         file_put_contents($filename, "<" . "?php defined('COREPATH') or exit('No direct script access allowed'); ?" . ">" . PHP_EOL . PHP_EOL);
     }
     // create the monolog instance
     static::$monolog = new \Monolog\Logger('fuelphp');
     // create the streamhandler, and activate the handler
     $stream = new \Monolog\Handler\StreamHandler($filename, \Monolog\Logger::DEBUG);
     $formatter = new \Monolog\Formatter\LineFormatter("%level_name% - %datetime% --> %message%" . PHP_EOL, "Y-m-d H:i:s");
     $stream->setFormatter($formatter);
     static::$monolog->pushHandler($stream);
 }
Esempio n. 10
0
<?php

// DIC configuration
$container = $app->getContainer();
// Logger
$container['logger'] = function ($c) {
    $config = $c->settings['Monolog'];
    $logger = new Monolog\Logger($config['loggerName']);
    $logger->pushProcessor(new Monolog\Processor\UidProcessor());
    $formatter = new Monolog\Formatter\LineFormatter();
    $formatter->includeStacktraces();
    if (true === $config['StreamHandler']['enable']) {
        $handler = new Monolog\Handler\StreamHandler(VAR_PATH . '/log/app-' . date('Y-m') . '.log', $config['StreamHandler']['logLevel']);
        $handler->setFormatter($formatter);
        $logger->pushHandler($handler);
    }
    if (true === $config['NativeMailerHandler']['enable'] && '' != $config['NativeMailerHandler']['to']) {
        $handler = new Monolog\Handler\NativeMailerHandler($config['NativeMailerHandler']['to'], $config['NativeMailerHandler']['subject'], $config['NativeMailerHandler']['from'], $config['NativeMailerHandler']['logLevel']);
        $handler->setFormatter($formatter);
        $logger->pushHandler($handler);
    }
    return $logger;
};
// View renderer
$container['renderer'] = function ($c) {
    $config = $c->settings['Twig'];
    $path = $config['templatesPath'];
    unset($config['templatesPath']);
    $twig = new Slim\Views\Twig($path, $config);
    $twig->addExtension(new Slim\Views\TwigExtension($c->router, $c->request->getUri()));
    $twig['config'] = $c->settings['App'];
Esempio n. 11
0
// https://github.com/franzliedke/studio/issues/29
if (file_exists(__DIR__ . '/core')) {
    require __DIR__ . '/core/src/helpers.php';
    require __DIR__ . '/core/vendor/swiftmailer/swiftmailer/lib/swift_required.php';
}
$app = new Application(realpath(__DIR__));
$app->instance('path.public', __DIR__ . '/..');
Illuminate\Container\Container::setInstance($app);
if (file_exists($configFile = __DIR__ . '/../config.php')) {
    $app->instance('flarum.config', include $configFile);
}
date_default_timezone_set('UTC');
$app->instance('config', $config = new ConfigRepository(['view' => ['paths' => [realpath(base_path('resources/views'))], 'compiled' => realpath(storage_path() . '/framework/views')], 'mail' => ['driver' => 'mail'], 'cache' => ['default' => 'file', 'stores' => ['file' => ['driver' => 'file', 'path' => storage_path() . '/framework/cache']], 'prefix' => 'flarum'], 'filesystems' => ['default' => 'local', 'cloud' => 's3', 'disks' => ['flarum-avatars' => ['driver' => 'local', 'root' => public_path('assets/avatars')]]]]));
$logger = new Monolog\Logger($app->environment());
$logPath = $app->storagePath() . '/logs/flarum.log';
$handler = new \Monolog\Handler\StreamHandler($logPath, Monolog\Logger::DEBUG);
$handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true));
$logger->pushHandler($handler);
$app->instance('log', $logger);
$app->alias('log', 'Psr\\Log\\LoggerInterface');
$app->singleton('cache', function ($app) {
    $store = new FileStore(new Filesystem(), storage_path('framework/cache'));
    $repository = new Repository($store);
    $repository->setEventDispatcher($app->make('events'));
    return $repository;
});
$app->alias('cache', 'Illuminate\\Contracts\\Cache\\Repository');
$serviceProviders = ['Flarum\\Core\\DatabaseServiceProvider', 'Flarum\\Core\\Settings\\SettingsServiceProvider', 'Flarum\\Locale\\LocaleServiceProvider', 'Illuminate\\Bus\\BusServiceProvider', 'Illuminate\\Filesystem\\FilesystemServiceProvider', 'Illuminate\\Hashing\\HashServiceProvider', 'Illuminate\\Mail\\MailServiceProvider', 'Illuminate\\View\\ViewServiceProvider', 'Illuminate\\Events\\EventServiceProvider', 'Illuminate\\Validation\\ValidationServiceProvider'];
foreach ($serviceProviders as $provider) {
    $app->register(new $provider($app));
}
Esempio n. 12
0
<?php

$loader = (require __DIR__ . '/../vendor/autoload.php');
$loader->addPsr4('Pheat\\', __DIR__);
$build = __DIR__ . '/../build';
$logger = new Monolog\Logger('test');
$handler = new Monolog\Handler\StreamHandler($build . '/test.log');
$handler->pushProcessor(new \Monolog\Processor\PsrLogMessageProcessor());
$logger->pushHandler($handler);
$settings = new Pheat\Test\Settings();
$settings->setLogger($logger);
$settings->fromEnvironment();
$settings->setBuildDir($build);
$settings->checkBuildDir();
$settings->dumpConfig();
Pheat\Test\Test::setSettings($settings);
Esempio n. 13
0
<?php

/**
 * Created by PhpStorm.
 * User: janhuang
 * Date: 15/8/8
 * Time: 下午12:27
 * Github: https://www.github.com/janhuang
 * Coding: https://www.coding.net/janhuang
 * SegmentFault: http://segmentfault.com/u/janhuang
 * Blog: http://segmentfault.com/blog/janhuang
 * Gmail: bboyjanhuang@gmail.com
 * WebSite: http://www.janhuang.me
 */
include __DIR__ . '/../vendor/autoload.php';
$logger = new \Monolog\Logger('test');
$stream = new \Monolog\Handler\StreamHandler(__DIR__ . '/test.log');
$stream->setFormatter(new Monolog\Formatter\LineFormatter("[%datetime%] >> %level_name%: >> %message% >> %context% >> %extra%\n"));
$logger->pushHandler($stream);
$debug = \FastD\Debug\Debug::enable(false, $logger);
throw new ErrorException('test');
Esempio n. 14
0
$diImpl->setServiceNamespace('Application\\DiService');
$diImpl->set('class_loader', $classLoader);
/**
 * Configs
 */
$diImpl->set('configs', function () use($environment) {
    return new \Zend\Config\Config(include realpath(__DIR__) . '/env/' . $environment . '.php', true);
}, true);
/**
 * Logger
 */
$diImpl->set('logger', function () use($diImpl) {
    $configs = $diImpl->get('configs');
    $logFile = $configs->logger->path . '/' . $configs->logger->name . '-' . date('Y-m-d') . '.log';
    $monolog = new \Monolog\Logger($configs->logger->name);
    $fileStream = new \Monolog\Handler\StreamHandler($logFile, $configs->logger->level, true, 0666);
    $lineFormatter = new \MiniFrame\Logger\MonologLineFormatter($configs->logger->line_format, $configs->logger->datetime_format);
    $lineFormatter->setReqId($configs->req_id);
    $fileStream->setFormatter($lineFormatter);
    $monolog->pushHandler($fileStream);
    return $monolog;
}, true);
/**
 * ErrorCatcher
 */
$diImpl->set('error_catcher', function () use($diImpl) {
    $errorCatcher = new \MiniFrame\ErrorCatcher();
    $exceptionHandler = new \MiniFrame\ExceptionCallbackHandler($diImpl->get('logger'));
    $fatalErrorHandler = new \MiniFrame\FatalErrorCallbackHandler($diImpl->get('logger'));
    $errorCatcher->setExceptionCallback([$exceptionHandler, 'handle']);
    $errorCatcher->setFatalCallback([$fatalErrorHandler, 'handle']);
Esempio n. 15
0
 protected function getMonolog_Handler_NestedService()
 {
     $this->services['monolog.handler.nested'] = $instance = new \Monolog\Handler\StreamHandler($this->targetDirs[2] . '/logs/prod.log', 100, true, NULL);
     $instance->pushProcessor(${($_ = isset($this->services['monolog.processor.psr_log_message']) ? $this->services['monolog.processor.psr_log_message'] : $this->getMonolog_Processor_PsrLogMessageService()) && false ?: '_'});
     return $instance;
 }
Esempio n. 16
0
<?php

$logger = new Monolog\Logger('lucid');
$handler = new Monolog\Handler\StreamHandler(__DIR__ . '/../debug.log');
$format = '[%datetime%] ';
$format .= '[' . str_pad(session_id(), 32, ' ', STR_PAD_RIGHT) . '] ';
$ip = $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1';
$format .= '[' . str_pad($ip, 15, ' ', STR_PAD_RIGHT) . '] ';
$format .= "%level_name%: %message%\n";
$handler->setFormatter(new Monolog\Formatter\LineFormatter($format));
$logger->pushHandler($handler);
\Lucid\lucid::$app->set('logger', $logger);
<?php

date_default_timezone_set('Europe/Rome');
require '../vendor/autoload.php';
$config = (require '../config.php');
require '../app/function.fatal.php';
$streamToFile = new \Monolog\Handler\StreamHandler($config['log']['filename']);
//@See https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md
// DEFAULT: "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n";
$output = "[%datetime%] [%level_name%] [%extra%] : %message% %context%\n";
$formatter = new Monolog\Formatter\LineFormatter($output);
$streamToFile->setFormatter($formatter);
if ($config['enviroment'] == 'development') {
    $connection_name = 'testing';
} else {
    $connection_name = 'default';
}
$streamToFile->pushProcessor(function ($record) use($connection_name, $argv) {
    $record['extra']['connection'] = $connection_name;
    $record['extra']['scriptname'] = $argv[0];
    return $record;
});
$log = new \Monolog\Logger('script');
$log->pushHandler($streamToFile);
Esempio n. 18
0
<?php

use Illuminate\Database\Capsule\Manager as Capsule;
// DIC
$container = $app->getContainer();
// Monolog
$container['logger'] = function (\Slim\Container $c) {
    $settings = $c->get('settings')['logger'];
    $logger = new Monolog\Logger($settings['name']);
    $handler = new Monolog\Handler\StreamHandler($settings['path'], Monolog\Logger::DEBUG);
    $handler->setFormatter(new Monolog\Formatter\LineFormatter("[%datetime%] %level_name% > %message% - %context% - %extra%\n"));
    $logger->pushHandler($handler);
    $logger->pushProcessor(new Monolog\Processor\UidProcessor());
    $logger->pushProcessor(new Monolog\Processor\WebProcessor());
    return $logger;
};
// Eloquent orm
$capsule = new Capsule();
$capsule->addConnection($container->get('settings')['database']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
// Injeta o container no Base controller
$container['Base'] = function ($c) {
    return new Base($c);
};
Esempio n. 19
0
<?php

/**
 * Created by PhpStorm.
 * User: Stefano "Yoghi" Tamagnini
 * Date: 21/09/15 - 22:41
 * 
 */
require '../vendor/autoload.php';
date_default_timezone_set('Europe/Rome');
$config = (require '../config.php');
require '../app/function.fatal.php';
$streamToFile = new \Monolog\Handler\StreamHandler($config['log']['filename']);
//@See https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md
// DEFAULT: "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n";
$output = "[%datetime%] [%level_name%] [%extra%] : %message% %context%\n";
$formatter = new Monolog\Formatter\LineFormatter($output);
$streamToFile->setFormatter($formatter);
$streamToFile->pushProcessor(function ($record) use($config) {
    if ($config['enviroment'] == 'development') {
        $record['extra']['connection'] = 'testing';
    } else {
        $record['extra']['connection'] = 'default';
    }
    return $record;
});
$handlers[] = $streamToFile;
$logger_writer = new \Flynsarmy\SlimMonolog\Log\MonologWriter(array('handlers' => $handlers, 'processors' => array(new Monolog\Processor\UidProcessor(), new Monolog\Processor\WebProcessor($_SERVER))));
$app = new \Slim\Slim(array('mode' => $config['enviroment'], 'log.level' => \Slim\Log::DEBUG, 'log.enabled' => true, 'log.writer' => $logger_writer, 'templates.path' => '../templates'));
$app->config('databases', $config['databases']);
$app->add(new \BitPrepared\Slim\Middleware\EloquentMiddleware());
Esempio n. 20
0
// DIC configuration
$container = $app->getContainer();
// -----------------------------------------------------------------------------
// Service providers
// -----------------------------------------------------------------------------
// php-view
$container['view'] = function ($c) {
    return new Slim\Views\PhpRenderer($c['settings']['view']['template_path']);
};
// monolog
$container['logger'] = function ($c) {
    $logger = new Monolog\Logger($c['settings']['logger']['name']);
    $logger->pushProcessor(new Monolog\Processor\MemoryPeakUsageProcessor());
    $logger->pushProcessor(new Monolog\Processor\WebProcessor());
    $handler = new Monolog\Handler\StreamHandler($c['settings']['logger']['path'], \Monolog\Logger::DEBUG);
    $handler->setFormatter(new Monolog\Formatter\JsonFormatter());
    $logger->pushHandler($handler);
    $logger->pushHandler(new Monolog\Handler\ErrorLogHandler());
    return $logger;
};
// error handler
$container['errorHandler'] = function ($c) {
    return new Lib\ApiError($c['logger']);
};
// not found handler
$container['notFoundHandler'] = function ($c) {
    return new Lib\ApiNotFound($c['logger']);
};
// not allowed handler
$container['notAllowedHandler'] = function ($c) {
Esempio n. 21
0
});
$app['security.access_manager'] = $app->share(function ($app) {
    return new AccessDecisionManager($app['security.voters'], AccessDecisionManager::STRATEGY_AFFIRMATIVE);
});
$app['security.access_rules'] = array(array(MultiPathRequestMatcher::fromPaths([new Path('^/labels/.*', ['POST', 'DELETE', 'PATCH'])]), Permission::LABELS_BEHEREN), array('^/(roles|permissions|users)/.*', Permission::GEBRUIKERS_BEHEREN));
require __DIR__ . '/../debug.php';
$app['logger.search'] = $app->share(function ($app) {
    $logger = new \Monolog\Logger('search');
    $handlers = $app['config']['log.search'];
    foreach ($handlers as $handler_config) {
        switch ($handler_config['type']) {
            case 'hipchat':
                $handler = new \Monolog\Handler\HipChatHandler($handler_config['token'], $handler_config['room']);
                break;
            case 'file':
                $handler = new \Monolog\Handler\StreamHandler(__DIR__ . '/' . $handler_config['path']);
                break;
            default:
                continue 2;
        }
        $handler->setLevel($handler_config['level']);
        $logger->pushHandler($handler);
    }
    return $logger;
});
// Enable CORS.
$app->after($app["cors"]);
if (isset($app['config']['cdbxml_proxy']) && $app['config']['cdbxml_proxy']['enabled']) {
    $app->before(function (Request $request, Application $app) {
        /** @var \CultuurNet\UDB3\Symfony\Proxy\CdbXmlProxy $cdbXmlProxy */
        $cdbXmlProxy = $app['cdbxml_proxy'];
 /**
  * Gets the 'monolog.handler.main' service.
  *
  * This service is shared.
  * This method always returns the same instance of the service.
  *
  * @return \Monolog\Handler\StreamHandler A Monolog\Handler\StreamHandler instance
  */
 protected function getMonolog_Handler_MainService()
 {
     $this->services['monolog.handler.main'] = $instance = new \Monolog\Handler\StreamHandler($this->targetDirs[2] . '/logs/test.log', 100, true, NULL);
     $instance->pushProcessor($this->get('monolog.processor.psr_log_message'));
     return $instance;
 }
Esempio n. 23
0
<?php

// DIC configuration
$container = $app->getContainer();
require __DIR__ . '/database/bootstrap.php';
// -----------------------------------------------------------------------------
// Service factories
// -----------------------------------------------------------------------------
// monolog
$container['logger'] = function ($c) {
    $settings = $c->get('settings');
    // https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md#customizing-the-log-format
    // allow breaking lines
    $formatter = new \Monolog\Formatter\LineFormatter(null, null, true);
    $stream = new \Monolog\Handler\StreamHandler($settings['logger']['path'], \Monolog\Logger::DEBUG);
    $stream->setFormatter($formatter);
    $logger = new \Monolog\Logger($settings['logger']['name']);
    $logger->pushHandler($stream);
    return $logger;
};
// -----------------------------------------------------------------------------
// Error Handlers
// -----------------------------------------------------------------------------
unset($container['errorHandler']);
unset($container['notFoundHandler']);
$container['errorHandler'] = function ($c) {
    $displayErrorDetails = $c->get('settings')['displayErrorDetails'];
    return new App\Handlers\Error($displayErrorDetails, $c->get('logger'));
};
$container['notFoundHandler'] = function ($c) {
    return function ($request, $response) use($c) {
Esempio n. 24
0
<?php

// Logger
$handlers = [];
$formatter = new Monolog\Formatter\LineFormatter();
$formatter->includeStacktraces();
$handler = new Monolog\Handler\StreamHandler(VAR_PATH . '/log/app-' . date('Y-m') . '.log');
$handler->setFormatter($formatter);
$handlers[] = $handler;
if (true === $config['App']['errors']['send_email'] && '' != $config['App']['errors']['email_to']) {
    $handler = new Monolog\Handler\NativeMailerHandler($config['App']['errors']['email_to'], $config['App']['errors']['email_subject'] ?: 'Error', $config['App']['errors']['email_from']);
    $handler->setFormatter($formatter);
    $handlers[] = $handler;
}
$app->getLog()->setWriter(new Flynsarmy\SlimMonolog\Log\MonologWriter(['handlers' => $handlers]));
// View renderer
$view = new Slim\Views\Twig();
$view->parserOptions = $config['Twig'];
$view->parserExtensions = [new Slim\Views\TwigExtension()];
$app->view($view);
Esempio n. 25
0
 /**
  * initialize the created the monolog instance
  */
 public static function initialize()
 {
     // load the file config
     \Config::load('log', true);
     // make sure the log directories exist
     try {
         // determine the name and location of the logfile
         $path = \Config::get('log.log_path', APPPATH . 'logs' . DS);
         $filename = \Config::get('log.log_file', null);
         if (empty($filename)) {
             $filename = $path . LOG_FILENAME;
         } else {
             $filename = $path . $filename;
         }
     } catch (\Exception $e) {
         \Config::set('log.log_threshold', \Fuel::L_NONE);
         throw new \FuelException('Unable to create or write to the log file. Please check the permissions on ' . \Config::get('log_path') . '. (' . $e->getMessage() . ')');
     }
     if (\Config::get("log.loggerconfig") !== null) {
         $handler = \Config::get("log.loggerconfig.handler");
         foreach ($handler as $key => $value) {
             $level = \Monolog\Logger::DEBUG;
             switch ($value['level']) {
                 case "DEBUG":
                     $level = \Monolog\Logger::DEBUG;
                     break;
                 case "INFO":
                     $level = \Monolog\Logger::INFO;
                     break;
                 case "NOTICE":
                     $level = \Monolog\Logger::NOTICE;
                     break;
                 case "WARNING":
                     $level = \Monolog\Logger::WARNING;
                     break;
                 case "ERROR":
                     $level = \Monolog\Logger::ERROR;
                     break;
                 case "CRITICAL":
                     $level = \Monolog\Logger::CRITICAL;
                     break;
                 case "ALERT":
                     $level = \Monolog\Logger::ALERT;
                     break;
                 case "EMERGENCY":
                     $level = \Monolog\Logger::EMERGENCY;
                     break;
             }
             switch ($key) {
                 case "Stream":
                     $output = "%datetime% | %level_name% | %message%\n";
                     $formatter = new \Monolog\Formatter\LineFormatter($output . PHP_EOL, "Y-m-d H:i:s");
                     $stream = new \Monolog\Handler\StreamHandler($filename, $level);
                     $stream->setFormatter($formatter);
                     static::$monolog->pushHandler($stream);
                     break;
                 case "File":
                     $output = "%datetime% | %level_name% | %message%\n";
                     $formatter = new \Monolog\Formatter\LineFormatter($output . PHP_EOL, "Y-m-d H:i:s");
                     $stream = new \Monolog\Handler\RotatingFileHandler($filename, $value['rotate'], $level);
                     $stream->setFormatter($formatter);
                     static::$monolog->pushHandler($stream);
                     break;
                 case "ChromePHP":
                     static::$monolog->pushHandler(new \Monolog\Handler\FingersCrossedHandler(new \Monolog\Handler\ChromePHPHandler(), new \Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy($level)));
                     break;
             }
         }
     }
 }
Esempio n. 26
0
 public static function get_logger()
 {
     if (!self::$logger) {
         self::$logger = new Monolog\Logger('dbsteward');
         self::$logger->pushHandler($sh = new Monolog\Handler\StreamHandler('php://stderr', static::$LOG_LEVEL));
         $sh->setFormatter(new DBStewardConsoleLogFormatter());
     }
     return self::$logger;
 }
Esempio n. 27
0
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
$app = new Illuminate\Foundation\Application(realpath(__DIR__ . '/../'));
$app->configureMonologUsing(function (\Monolog\Logger $monolog) use($app) {
    if (env('APP_USE_LOG_SERVER', false) === true) {
        $logServer = env('APP_LOG_SERVER', 'logs');
        $publisher = new \Gelf\Publisher(new \Gelf\Transport\UdpTransport($logServer));
        $handler = new \Monolog\Handler\GelfHandler($publisher);
        $handler->pushProcessor(new \Monolog\Processor\WebProcessor());
        $handler->pushProcessor(new \Monolog\Processor\UidProcessor());
        $monolog->pushHandler($handler);
    } else {
        $monolog->pushHandler($handler = new \Monolog\Handler\StreamHandler($app->storagePath() . '/logs/laravel.log'));
        $handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true));
    }
});
/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/
$app->singleton(Illuminate\Contracts\Http\Kernel::class, App\Http\Kernel::class);
$app->singleton(Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class);
Esempio n. 28
0
 /**
  * Saving Application instance for later use
  *
  * @param Container $container
  * @return void
  */
 public function provideServices(Container $container)
 {
     $this->container = $container;
     /*
      * Creating and registering our error handler
      */
     $whoops = new Run();
     $whoops->register();
     /** @var \Venta\Contracts\Kernel\Kernel $kernel */
     $kernel = $container->get(Kernel::class);
     if ($kernel->isCli()) {
         // We don't need pretty pages in cli mode
         $whoops->allowQuit(true);
         $whoops->sendHttpCode(false);
         $whoops->writeToOutput(true);
         $whoops->pushHandler(new PlainTextHandler());
     } else {
         // Push pretty page handler only for local environment
         $whoops->pushHandler($kernel->getEnvironment() === 'local' ? new PrettyPageHandler() : new PlainTextHandler());
     }
     /**
      * Bind error handler
      */
     $container->bindClass(RunInterface::class, $whoops, ['error_handler']);
     /*
      * Bind PSR-3 logger
      */
     $container->share(\Monolog\Logger::class, function (Container $c) {
         $logger = new \Monolog\Logger('venta');
         $handler = new \Monolog\Handler\StreamHandler(__DIR__ . '/../storage/logs/app.log');
         $handler->pushProcessor(function ($record) use($c) {
             /** @var \Venta\Contracts\Kernel\Kernel $kernel */
             $kernel = $c->get(Kernel::class);
             if ($kernel->isCli()) {
                 // Add cli command related extra info
                 /** @var \Symfony\Component\Console\Input\InputInterface $input */
                 $input = $c->get(InputInterface::class);
                 $record['extra']['command'] = $input->getFirstArgument();
                 $record['extra']['arguments'] = $input->getArguments();
                 $record['extra']['options'] = $input->getOptions();
             } else {
                 // Add HTTP request related extra info
                 /** @var \Psr\Http\Message\ServerRequestInterface $request */
                 $request = $c->get(ServerRequestInterface::class);
                 $server = $request->getServerParams();
                 $record['extra']['url'] = $request->getUri()->getPath();
                 $record['extra']['http_method'] = $request->getMethod();
                 $record['extra']['host'] = $request->getUri()->getHost();
                 $record['extra']['referer'] = $request->getHeader('referer');
                 $record['extra']['user_agent'] = $request->getHeader('user-agent');
                 $record['extra']['ip'] = $server['REMOTE_ADDR'] ?? null;
             }
             return $record;
         });
         $handler->setFormatter(new \Monolog\Formatter\LineFormatter());
         $logger->pushHandler($handler);
         return $logger;
     }, ['logger', LoggerInterface::class]);
 }
 /**
  * @return Monolog
  */
 private function getLogger()
 {
     $logger = new \Monolog\Logger('Commands');
     $fileHandler = new \Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/commands.log');
     $streamHandler = new \Monolog\Handler\StreamHandler("php://output");
     $lineFormatter = new \Monolog\Formatter\LineFormatter("[%datetime%] %message% %context% %extra%\n", null, true, true);
     $fileHandler->setFormatter($lineFormatter);
     $streamHandler->setFormatter($lineFormatter);
     $logger->pushHandler($fileHandler);
     $logger->pushHandler($streamHandler);
     return $logger;
 }
Esempio n. 30
0
<?php

/* Monolog logger */
// https://github.com/Seldaek/monolog
$this['logger'] = $this->share(function () {
    $monolog = new \Monolog\Logger($this->setting('name'));
    $settings = $this->setting('factory')['logger'];
    foreach ($settings['handlers'] as $handel) {
        switch ($handel['type']) {
            case 'streamHandler':
                if (isset($handel['level'])) {
                    $streamHandlerLevel = $handel['level'];
                } else {
                    $streamHandlerLevel = \Monolog\Logger::WARNING;
                }
                $streamHandler = new \Monolog\Handler\StreamHandler(APP_ROOT . '/' . $handel['location'] . date("ymd") . '.log', $streamHandlerLevel);
                if (isset($handel['formatter'])) {
                    switch ($handel['formatter']) {
                        case 'JsonFormatter':
                            $formatter = new \Monolog\Formatter\JsonFormatter();
                            $streamHandler->setFormatter($formatter);
                            break;
                        case 'LineFormatter':
                            $formatter = new \Monolog\Formatter\LineFormatter();
                            $streamHandler->setFormatter($formatter);
                            break;
                    }
                }
                if (isset($handel['handler'])) {
                    switch ($handel['handler']) {
                        case 'FingersCrossedHandler':