From 58cf686719b374ec7b3aebc00f41529ecccaa7e9 Mon Sep 17 00:00:00 2001 From: Denis Mishankov Date: Tue, 28 Oct 2025 22:10:15 +0300 Subject: [PATCH 1/2] Initialize default logger with custom configuration --- log/log.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/log/log.go b/log/log.go index 86d90b9..b709f71 100644 --- a/log/log.go +++ b/log/log.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "log/slog" + "os" ) type logger interface { @@ -19,7 +20,7 @@ type logger interface { ErrorContext(ctx context.Context, msg string, args ...any) } -var Logger logger = slog.Default() //nolint:gochecknoglobals +var Logger logger = New(os.Stdout, "text", slog.LevelInfo, nil) //nolint:gochecknoglobals // SetDefault sets the default logger used by the package-level logging functions. func SetDefault(l logger) { From 868398be619d9b3551a038afc7c823d0fa10b758 Mon Sep 17 00:00:00 2001 From: Denis Mishankov Date: Tue, 28 Oct 2025 22:27:35 +0300 Subject: [PATCH 2/2] Add demo app with clock service --- Taskfile.dist.yml | 5 +++++ demo-app/cmd/clock/main.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 demo-app/cmd/clock/main.go diff --git a/Taskfile.dist.yml b/Taskfile.dist.yml index a2d84ba..59609cd 100644 --- a/Taskfile.dist.yml +++ b/Taskfile.dist.yml @@ -17,3 +17,8 @@ tasks: deps: - lint - test + + demo: + dir: demo-app + cmds: + - go run ./cmd/clock/main.go diff --git a/demo-app/cmd/clock/main.go b/demo-app/cmd/clock/main.go new file mode 100644 index 0000000..c206416 --- /dev/null +++ b/demo-app/cmd/clock/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "context" + "fmt" + "time" + + "github.com/mishankov/platforma/application" + "github.com/mishankov/platforma/log" +) + +type Clock struct{} + +func (r *Clock) Run(ctx context.Context) error { + ticker := time.NewTicker(1 * time.Second) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + log.InfoContext(ctx, "tick") + case <-ctx.Done(): + log.InfoContext(ctx, "finished") + return fmt.Errorf("context error: %w", ctx.Err()) + } + } +} + +func main() { + ctx := context.Background() + app := application.New() + + app.RegisterService("clock", &Clock{}) + + if err := app.Run(ctx); err != nil { + log.ErrorContext(ctx, "app finished with error", "error", err) + } +}