66use LaravelFCM \Sender \FCMGroup ;
77use LaravelFCM \Sender \FCMSender ;
88use Illuminate \Support \ServiceProvider ;
9+ use Monolog \Logger ;
10+ use Monolog \Handler \StreamHandler ;
11+ use Monolog \Handler \NullHandler ;
912
1013class FCMServiceProvider extends ServiceProvider
1114{
@@ -32,23 +35,35 @@ public function register()
3235 return (new FCMManager ($ app ))->driver ();
3336 });
3437
38+ $ this ->app ->singleton ('fcm.logger ' , function ($ app ) {
39+ $ logger = new Logger ('Laravel-FCM ' );
40+ if ($ app [ 'config ' ]->get ('fcm.log_enabled ' , false )) {
41+ $ logger ->pushHandler (new NullHandler ());
42+ } else {
43+ $ logger ->pushHandler (new StreamHandler (storage_path ('logs/laravel-fcm.log ' )));
44+ }
45+ return $ logger ;
46+ });
47+
3548 $ this ->app ->bind ('fcm.group ' , function ($ app ) {
3649 $ client = $ app [ 'fcm.client ' ];
3750 $ url = $ app [ 'config ' ]->get ('fcm.http.server_group_url ' );
51+ $ logger = $ app [ 'fcm.logger ' ];
3852
39- return new FCMGroup ($ client , $ url );
53+ return new FCMGroup ($ client , $ url, $ logger );
4054 });
4155
4256 $ this ->app ->bind ('fcm.sender ' , function ($ app ) {
4357 $ client = $ app [ 'fcm.client ' ];
4458 $ url = $ app [ 'config ' ]->get ('fcm.http.server_send_url ' );
59+ $ logger = $ app [ 'fcm.logger ' ];
4560
46- return new FCMSender ($ client , $ url );
61+ return new FCMSender ($ client , $ url, $ logger );
4762 });
4863 }
4964
5065 public function provides ()
5166 {
52- return ['fcm.client ' , 'fcm.group ' , 'fcm.sender ' ];
67+ return ['fcm.client ' , 'fcm.group ' , 'fcm.sender ' , ' fcm.logger ' ];
5368 }
5469}
0 commit comments