1616use  PHPUnit \Framework \TestCase ;
1717use  Symfony \Bridge \Monolog \Handler \ConsoleHandler ;
1818use  Symfony \Bundle \MonologBundle \DependencyInjection \Compiler \AddProcessorsPass ;
19+ use  Symfony \Bundle \MonologBundle \DependencyInjection \Compiler \LoggerChannelPass ;
1920use  Symfony \Component \Config \FileLocator ;
2021use  Symfony \Component \DependencyInjection \ContainerBuilder ;
2122use  Symfony \Component \DependencyInjection \Definition ;
@@ -54,6 +55,18 @@ public function testHandlerProcessors()
5455        $ this  ->assertCount (2 , $ calls );
5556        $ this  ->assertEquals (['pushProcessor ' , [new  TypedReference ('processor+35+25 ' , 'TestClass ' )]], $ calls [0 ]);
5657        $ this  ->assertEquals (['pushProcessor ' , [new  TypedReference ('processor+25+35 ' , 'TestClass ' )]], $ calls [1 ]);
58+ 
59+         $ service  = $ container ->getDefinition ('monolog.logger ' );
60+         $ calls  = $ service ->getMethodCalls ();
61+         $ this  ->assertCount (2 , $ calls );
62+         $ this  ->assertEquals (['useMicrosecondTimestamps ' , ['%monolog.use_microseconds% ' ]], $ calls [0 ]);
63+         $ this  ->assertEquals (['pushProcessor ' , [new  TypedReference ('processor_all_channels+0 ' , 'TestClass ' )]], $ calls [1 ]);
64+ 
65+         $ service  = $ container ->getDefinition ('monolog.logger.test ' );
66+         $ calls  = $ service ->getMethodCalls ();
67+         $ this  ->assertCount (2 , $ calls );
68+         $ this  ->assertEquals (['pushProcessor ' , [new  TypedReference ('processor_test_channel-25 ' , 'TestClass ' )]], $ calls [0 ]);
69+         $ this  ->assertEquals (['pushProcessor ' , [new  TypedReference ('processor_all_channels+0 ' , 'TestClass ' )]], $ calls [1 ]);
5770    }
5871
5972    public  function  testFailureOnHandlerWithoutPushProcessor ()
@@ -88,6 +101,9 @@ protected function getContainer()
88101        $ loader  = new  XmlFileLoader ($ container , new  FileLocator (__DIR__ .'/../../../Resources/config ' ));
89102        $ loader ->load ('monolog.xml ' );
90103
104+         $ container ->setParameter ('monolog.additional_channels ' , ['test ' ]);
105+         $ container ->setParameter ('monolog.handlers_to_channels ' , []);
106+ 
91107        $ definition  = $ container ->getDefinition ('monolog.logger_prototype ' );
92108        $ container ->setParameter ('monolog.handler.console.class ' , ConsoleHandler::class);
93109        $ container ->setDefinition ('monolog.handler.test ' , new  Definition ('%monolog.handler.console.class% ' , [100 , false ]));
@@ -100,39 +116,48 @@ protected function getContainer()
100116        $ definition ->addMethodCall ('pushHandler ' , [new  Reference ('monolog.handler.priority_test ' )]);
101117        $ definition ->addMethodCall ('pushHandler ' , [new  Reference ('monolog.handler.priority_test_2 ' )]);
102118
103-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
119+         $ service  = new  Definition ('TestClass ' );
104120        $ service ->addTag ('monolog.processor ' , ['handler '  => 'test ' ]);
105121        $ container ->setDefinition ('test ' , $ service );
106122
107-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
123+         $ service  = new  Definition ('TestClass ' );
108124        $ service ->addTag ('monolog.processor ' , ['handler '  => 'test2 ' ]);
109125        $ container ->setDefinition ('test2 ' , $ service );
110126
111-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
127+         $ service  = new  Definition ('TestClass ' );
112128        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test ' , 'priority '  => 10 ]);
113129        $ container ->setDefinition ('processor+10 ' , $ service );
114130
115-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
131+         $ service  = new  Definition ('TestClass ' );
116132        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test ' , 'priority '  => -10 ]);
117133        $ container ->setDefinition ('processor-10 ' , $ service );
118134
119-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
135+         $ service  = new  Definition ('TestClass ' );
120136        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test ' , 'priority '  => 20 ]);
121137        $ container ->setDefinition ('processor+20 ' , $ service );
122138
123-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
139+         $ service  = new  Definition ('TestClass ' );
124140        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test ' , 'priority '  => 35 ]);
125141        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test_2 ' , 'priority '  => 25 ]);
126142        $ container ->setDefinition ('processor+35+25 ' , $ service );
127143
128-         $ service  = new  Definition ('TestClass ' , [ ' false ' ,  new   Reference ( ' logger ' )] );
144+         $ service  = new  Definition ('TestClass ' );
129145        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test ' , 'priority '  => 25 ]);
130146        $ service ->addTag ('monolog.processor ' , ['handler '  => 'priority_test_2 ' , 'priority '  => 35 ]);
131147        $ container ->setDefinition ('processor+25+35 ' , $ service );
132148
149+         $ service  = new  Definition ('TestClass ' );
150+         $ service ->addTag ('monolog.processor ' , ['priority '  => 0 ]);
151+         $ container ->setDefinition ('processor_all_channels+0 ' , $ service );
152+ 
153+         $ service  = new  Definition ('TestClass ' );
154+         $ service ->addTag ('monolog.processor ' , ['channel '  => 'test ' , 'priority '  => -25 ]);
155+         $ container ->setDefinition ('processor_test_channel-25 ' , $ service );
156+ 
133157        $ container ->getCompilerPassConfig ()->setOptimizationPasses ([]);
134158        $ container ->getCompilerPassConfig ()->setRemovingPasses ([]);
135-         $ container ->addCompilerPass (new  AddProcessorsPass ());
159+         $ container ->addCompilerPass ($ channelPass  = new  LoggerChannelPass ());
160+         $ container ->addCompilerPass (new  AddProcessorsPass ($ channelPass ));
136161        $ container ->compile ();
137162
138163        return  $ container ;
0 commit comments