我有一个可以通过作曲器自动加载到其他所有类的类:
#include <stdio.h>
int main()
{
int t,n,k,i,j,a[100000],b[100000][20],ch;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&k);
for(i=0;i<k;i++)
a[i]=0;
ch=0;
for(i=0;i<n;i++)
{
scanf("%d",&b[i][0]);
for(j=1;j<=b[i][0];j++)
{
scanf("%d",&b[i][j]);
a[b[i][j]-1]++;
}
}
for(i=0;i<k;i++)
if(a[i]==0)
{
ch=1;break;//impossible
}
if(ch==1)
printf("sad\n");
else//possible
{
for(i=0;i<n;i++)
{
ch=0;
for(j=1;j<=b[i][0];j++)
{
if(a[b[i][j]-1]==1)//its contri matters
{
ch=1;break;
}
}
if(ch==0)//its contri doesn't matter
{
printf("some\n");
break;
}
}
if(ch==1)
printf("all\n");
}
}
return 0;
}
当我在其他课程中使用它时,它看起来像这样:
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");
但是,在这种情况下,我当然只需要信息日志级别。但是,它同时打印两个。我该如何解决?
答案 0 :(得分:2)
日志级别是StreamHandler
构造函数的参数,而不是函数pushHandler()
。
来自:
$logger->pushHandler(new StreamHandler('/var/log/php/php.log'), Logger::INFO);
收件人:
$logger->pushHandler(new StreamHandler('/var/log/php/php.log', Logger::INFO));
应该做你想做的