Change logger to slog

This commit is contained in:
2025-08-13 12:56:09 +03:00
parent d957800e18
commit 9dd5f47010
4 changed files with 177 additions and 47 deletions

View File

@@ -5,6 +5,7 @@ import (
"database/sql"
"encoding/json"
"io"
"log/slog"
"mime/multipart"
"net/http"
"net/http/httptest"
@@ -63,7 +64,12 @@ func setupTestRouter(t *testing.T) (*gin.Engine, *TranscribeHandler) {
converter := ffmpegconv.NewFfmpegConverter()
recognizer := &recognizer.MemoryAudioRecognizer{}
trsService := service.NewTranscribeService(jobRepo, fileRepo, metaviewer, converter, recognizer)
// Создаем тестовый логгер
logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
Level: slog.LevelError, // Только ошибки в тестах
}))
trsService := service.NewTranscribeService(jobRepo, fileRepo, metaviewer, converter, recognizer, logger)
handler := NewTranscribeHandler(jobRepo, trsService)

View File

@@ -2,7 +2,7 @@ package worker
import (
"context"
"log"
"log/slog"
"strconv"
"time"
@@ -17,12 +17,21 @@ type Worker interface {
}
type CallbackWorker struct {
name string
f func() error
name string
f func() error
logger *slog.Logger
}
func NewCallbackWorker(name string, f func() error) *CallbackWorker {
return &CallbackWorker{name, f}
func NewCallbackWorker(name string, f func() error, logger *slog.Logger) *CallbackWorker {
if logger == nil {
logger = slog.Default()
}
return &CallbackWorker{
name: name,
f: f,
logger: logger,
}
}
func (w *CallbackWorker) Name() string {
@@ -30,12 +39,12 @@ func (w *CallbackWorker) Name() string {
}
func (w *CallbackWorker) Start(ctx context.Context) {
log.Printf("%s started", w.Name())
w.logger.Info("Worker started", "worker_name", w.Name())
for {
select {
case <-ctx.Done():
log.Printf("%s received shutdown signal", w.Name())
w.logger.Info("Worker received shutdown signal", "worker_name", w.Name())
return
default:
err := w.f()
@@ -44,13 +53,13 @@ func (w *CallbackWorker) Start(ctx context.Context) {
metrics.WorkerJobCounter.WithLabelValues(w.Name(), strconv.FormatBool(err != nil)).Inc()
}
if err != nil && !isNoop {
log.Printf("%s error: %v", w.Name(), err)
w.logger.Error("Worker error", "worker_name", w.Name(), "error", err)
}
// Ждем 1 секунду перед следующей итерацией
select {
case <-ctx.Done():
log.Printf("%s received shutdown signal during sleep", w.Name())
w.logger.Info("Worker received shutdown signal during sleep", "worker_name", w.Name())
return
case <-time.After(1 * time.Second):
// Продолжаем работу