11package caddy
22
33import (
4+ "context"
45 "errors"
56 "fmt"
67 "log/slog"
@@ -56,6 +57,7 @@ type FrankenPHPApp struct {
5657 MaxWaitTime time.Duration `json:"max_wait_time,omitempty"`
5758
5859 metrics frankenphp.Metrics
60+ ctx context.Context
5961 logger * slog.Logger
6062}
6163
@@ -71,6 +73,7 @@ func (f FrankenPHPApp) CaddyModule() caddy.ModuleInfo {
7173
7274// Provision sets up the module.
7375func (f * FrankenPHPApp ) Provision (ctx caddy.Context ) error {
76+ f .ctx = ctx
7477 f .logger = ctx .Slogger ()
7578
7679 if httpApp , err := ctx .AppIfConfigured ("http" ); err == nil {
@@ -128,9 +131,10 @@ func (f *FrankenPHPApp) Start() error {
128131 repl := caddy .NewReplacer ()
129132
130133 opts := []frankenphp.Option {
134+ frankenphp .WithContext (f .ctx ),
135+ frankenphp .WithLogger (f .logger ),
131136 frankenphp .WithNumThreads (f .NumThreads ),
132137 frankenphp .WithMaxThreads (f .MaxThreads ),
133- frankenphp .WithLogger (f .logger ),
134138 frankenphp .WithMetrics (f .metrics ),
135139 frankenphp .WithPhpIni (f .PhpIni ),
136140 frankenphp .WithMaxWaitTime (f .MaxWaitTime ),
@@ -159,7 +163,11 @@ func (f *FrankenPHPApp) Start() error {
159163}
160164
161165func (f * FrankenPHPApp ) Stop () error {
162- f .logger .Info ("FrankenPHP stopped 🐘" )
166+ ctx := caddy .ActiveContext ()
167+
168+ if f .logger .Enabled (caddy .ActiveContext (), slog .LevelInfo ) {
169+ f .logger .LogAttrs (ctx , slog .LevelInfo , "FrankenPHP stopped 🐘" )
170+ }
163171
164172 // attempt a graceful shutdown if caddy is exiting
165173 // note: Exiting() is currently marked as 'experimental'
0 commit comments