PHP Monolog作为记录器仅打印信息级别
我有一个通过composer自动加载到所有其他类的类:PHP Monolog作为记录器仅打印信息级别,php,monolog,Php,Monolog,我有一个通过composer自动加载到所有其他类的类: use Monolog\Logger; use Monolog\Handler\StreamHandler; class LogStreamer { protected static $instance; public static function getLogger() { if(! self::$instance){ self::configureInstance(
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
class LogStreamer
{
protected static $instance;
public static function getLogger()
{
if(! self::$instance){
self::configureInstance();
}
return self::$instance;
}
private static function configureInstance() {
$logger = new Logger('Q');
$logger->pushHandler(new StreamHandler('/var/log/php/php.log'), Logger::INFO);
self::$instance = $logger;
}
public static function info($message, array $context = []){
self::getLogger()->addInfo($message, $context);
}
public static function debug($message, array $context = []){
self::getLogger()->addDebug($message, $context);
}
当我在其他类中使用它时,它看起来是这样的:
public function getOptions() {
LogStreamer::debug("Debug happened in log streamer");
LogStreamer::info("Info happened in log streamer");
它可以打印出以下内容:
当然,在这种情况下,我只需要信息日志级别。但是,它同时打印了这两种内容。如何解决此问题?日志级别是
StreamHandler
构造函数的参数,而不是函数pushHandler()
发件人:
致:
应该做你想做的事日志级别是
StreamHandler
构造函数的参数,而不是函数pushHandler()
发件人:
致:
你想干什么就干什么
[2018-07-02 09:56:34] Q.DEBUG: Debug happened in log streamer [] []
[2018-07-02 09:56:34] Q.INFO: Info happened in log streamer [] []
$logger->pushHandler(new StreamHandler('/var/log/php/php.log'), Logger::INFO);
$logger->pushHandler(new StreamHandler('/var/log/php/php.log', Logger::INFO));