[GH-ISSUE #670] [FEATURE REQUEST] switch logger to golang.org/x/exp/slog #1351

Open
opened 2026-03-07 22:08:50 +03:00 by kerem · 4 comments
Owner

Originally created by @ryan961 on GitHub (Jun 13, 2023).
Original GitHub issue: https://github.com/hibiken/asynq/issues/670

Originally assigned to: @hibiken on GitHub.

Slog is set to be introduced in Go 1.21 as part of the standard library (api: audit for Go 1.21 #60560), utilizing the standard Logger interface for easier integration by users.

Originally created by @ryan961 on GitHub (Jun 13, 2023). Original GitHub issue: https://github.com/hibiken/asynq/issues/670 Originally assigned to: @hibiken on GitHub. Slog is set to be introduced in Go 1.21 as part of the standard library ([api: audit for Go 1.21 #60560](https://github.com/golang/go/issues/60560)), utilizing the standard Logger interface for easier integration by users.
Author
Owner

@mujehoxe commented on GitHub (Oct 24, 2024):

How can i use it instead of the default logger of asynq?

<!-- gh-comment-id:2435919188 --> @mujehoxe commented on GitHub (Oct 24, 2024): How can i use it instead of the default logger of asynq?
Author
Owner

@mujehoxe commented on GitHub (Oct 24, 2024):

I now am receiving a different structure from asynq from my logger

{"time":"2024-10-24T17:37:07.416311372+01:00","level":"INFO","msg":"Starting worker..."}
asynq: pid=343207 2024/10/24 16:37:07.416384 INFO: Starting processing
{"time":"2024-10-24T17:37:07.416342416+01:00","level":"INFO","msg":"Starting API server on :8181..."}

<!-- gh-comment-id:2435922328 --> @mujehoxe commented on GitHub (Oct 24, 2024): I now am receiving a different structure from asynq from my logger {"time":"2024-10-24T17:37:07.416311372+01:00","level":"INFO","msg":"Starting worker..."} asynq: pid=343207 2024/10/24 16:37:07.416384 INFO: Starting processing {"time":"2024-10-24T17:37:07.416342416+01:00","level":"INFO","msg":"Starting API server on :8181..."}
Author
Owner

@afifurrohman-id commented on GitHub (May 17, 2025):

any update?

<!-- gh-comment-id:2888391974 --> @afifurrohman-id commented on GitHub (May 17, 2025): any update?
Author
Owner

@mrusme commented on GitHub (Dec 4, 2025):

Workaround:

import (
	"log/slog"
)

type AsyncLogger struct {
	logger *slog.Logger
}

func NewAsyncLogger(logger *slog.Logger) (l AsyncLogger) {
	l = AsyncLogger{}

	l.logger = logger

	return l
}

func (l AsyncLogger) fixArgs(args ...interface{}) []interface{} {
	if len(args)%2 != 0 {
		args = append([]interface{}{"args"}, args...)
	}
	return args
}

func (l AsyncLogger) Debug(args ...interface{}) {
	l.logger.Debug("Async", l.fixArgs(args)...)
}

func (l AsyncLogger) Info(args ...interface{}) {
	l.logger.Info("Async", l.fixArgs(args)...)
}

func (l AsyncLogger) Warn(args ...interface{}) {
	l.logger.Warn("Async", l.fixArgs(args)...)
}

func (l AsyncLogger) Error(args ...interface{}) {
	l.logger.Error("Async", l.fixArgs(args)...)
}

func (l AsyncLogger) Fatal(args ...interface{}) {
	l.logger.Error("Async", l.fixArgs(args)...)
}
aLogger := NewAsyncLogger(mySLogger)

asyncConfig := asynq.Config{
	Logger:      aLogger,
}
<!-- gh-comment-id:3614114850 --> @mrusme commented on GitHub (Dec 4, 2025): Workaround: ```go import ( "log/slog" ) type AsyncLogger struct { logger *slog.Logger } func NewAsyncLogger(logger *slog.Logger) (l AsyncLogger) { l = AsyncLogger{} l.logger = logger return l } func (l AsyncLogger) fixArgs(args ...interface{}) []interface{} { if len(args)%2 != 0 { args = append([]interface{}{"args"}, args...) } return args } func (l AsyncLogger) Debug(args ...interface{}) { l.logger.Debug("Async", l.fixArgs(args)...) } func (l AsyncLogger) Info(args ...interface{}) { l.logger.Info("Async", l.fixArgs(args)...) } func (l AsyncLogger) Warn(args ...interface{}) { l.logger.Warn("Async", l.fixArgs(args)...) } func (l AsyncLogger) Error(args ...interface{}) { l.logger.Error("Async", l.fixArgs(args)...) } func (l AsyncLogger) Fatal(args ...interface{}) { l.logger.Error("Async", l.fixArgs(args)...) } ``` ```go aLogger := NewAsyncLogger(mySLogger) asyncConfig := asynq.Config{ Logger: aLogger, } ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/asynq#1351
No description provided.