File tree Expand file tree Collapse file tree 5 files changed +58
-12
lines changed Expand file tree Collapse file tree 5 files changed +58
-12
lines changed Original file line number Diff line number Diff line change 20
20
],
21
21
"license" : " MIT" ,
22
22
"require" : {
23
- "php" : " 7.* |8.*" ,
23
+ "php" : " >=7.1 |8.*" ,
24
24
"illuminate/log" : " >=6.0" ,
25
25
"illuminate/console" : " >=6.0" ,
26
26
"illuminate/support" : " >=6.0" ,
Original file line number Diff line number Diff line change 4
4
5
5
namespace DevThis \ConsoleLogg \Binder ;
6
6
7
- use DevThis \ConsoleLogg \Console \ConsoleLogg ;
8
7
use DevThis \ConsoleLogg \Interfaces \Binder \LogOutputBindedInterface ;
9
- use Illuminate \ Contracts \ Config \ Repository ;
8
+ use DevThis \ ConsoleLogg \ LogHandlers \ ConsoleApp ;
10
9
use Illuminate \Log \LogManager ;
11
10
use Symfony \Component \Console \Output \OutputInterface ;
12
11
@@ -19,7 +18,7 @@ class LogOutputBinder implements LogOutputBindedInterface
19
18
{
20
19
public function attach (OutputInterface $ output , LogManager $ logManager ): void
21
20
{
22
- $ consoleLogger = new ConsoleLogg ($ output );
21
+ $ consoleLogger = new ConsoleApp ($ output );
23
22
24
23
$ logManager ->extend (
25
24
'console-logg ' ,
Original file line number Diff line number Diff line change 1
1
<?php
2
-
3
2
declare (strict_types=1 );
4
3
5
- namespace DevThis \ConsoleLogg \Console ;
4
+ namespace DevThis \ConsoleLogg \LogHandlers ;
6
5
7
6
use Monolog \Handler \HandlerInterface ;
8
7
use Symfony \Component \Console \Logger \ConsoleLogger ;
9
8
10
- class ConsoleLogg extends ConsoleLogger implements HandlerInterface
9
+ class ConsoleApp extends ConsoleLogger implements HandlerInterface
11
10
{
11
+ // Undocumented method required by Laravel LogManager
12
12
public function getHandlers (): array
13
13
{
14
14
return [$ this ];
Original file line number Diff line number Diff line change
1
+ <?php
2
+ declare (strict_types=1 );
3
+
4
+ namespace DevThis \ConsoleLogg \LogHandlers ;
5
+
6
+ use Monolog \Handler \HandlerInterface ;
7
+ use Psr \Log \NullLogger ;
8
+
9
+ // NonConsole does as little as possible
10
+ // it will be resolved as the console-logg log handler driver if the context is not console. (e.g. PHP-FPM)
11
+ class NonConsole extends NullLogger implements HandlerInterface {
12
+ // Undocumented method required by Laravel LogManager
13
+ public function getHandlers (): array
14
+ {
15
+ return [];
16
+ }
17
+
18
+ public function isHandling (array $ record ): bool
19
+ {
20
+ return false ;
21
+ }
22
+
23
+ public function handle (array $ record ): bool
24
+ {
25
+ return false ;
26
+ }
27
+
28
+ public function handleBatch (array $ records ): void
29
+ {
30
+ }
31
+
32
+ public function close (): void
33
+ {
34
+ }
35
+ }
Original file line number Diff line number Diff line change 9
9
use DevThis \ConsoleLogg \Interfaces \Binder \LogOutputBindedInterface ;
10
10
use DevThis \ConsoleLogg \Interfaces \Listener \LogManagerResolverListenerInterface ;
11
11
use DevThis \ConsoleLogg \Listeners \LogManagerResolverListener ;
12
+ use DevThis \ConsoleLogg \LogHandlers \NonConsole ;
12
13
use Illuminate \Log \LogManager ;
13
14
use Illuminate \Support \ServiceProvider ;
14
15
@@ -23,17 +24,28 @@ class ConsoleLoggServiceProvider extends ServiceProvider
23
24
*/
24
25
public function register ()
25
26
{
26
- // Support built-in PHP dev server or console kernel
27
- if (PHP_SAPI !== 'cli-server ' && $ this ->app ->runningInConsole () === false ) {
27
+ // TODO: Move this into documentation in a non-breaking fashion.
28
+ $ this ->app ['config ' ]['logging.channels.console-logg ' ] = ['driver ' => 'console-logg ' ];
29
+
30
+ if ($ this ->app ->runningInConsole () === false ) {
31
+ $ this ->app ->resolving (
32
+ LogManager::class,
33
+ static function (LogManager $ logManager ) {
34
+ $ logManager ->extend (
35
+ 'console-logg ' ,
36
+ function () {
37
+ return new NonConsole ();
38
+ }
39
+ );
40
+ }
41
+ );
42
+
28
43
return ;
29
44
}
30
45
31
46
$ this ->app ->singleton (LogOutputBindedInterface::class, LogOutputBinder::class);
32
47
$ this ->app ->singleton (LogManagerResolverListenerInterface::class, LogManagerResolverListener::class);
33
48
34
- // sorry for this hack :(
35
- $ this ->app ['config ' ]['logging.channels.console-logg ' ] = ['driver ' => 'console-logg ' ];
36
-
37
49
$ this ->app ->resolving (
38
50
LogManager::class,
39
51
Closure::fromCallable (
You can’t perform that action at this time.
0 commit comments