@@ -2,6 +2,8 @@ package slogger
22
33import (
44 "context"
5+ "fmt"
6+ "log"
57 "log/slog"
68 "os"
79 "runtime"
@@ -70,6 +72,87 @@ func New(handler slog.Handler) *Logger {
7072 }
7173}
7274
75+ func (l * Logger ) Tracef (format string , v ... any ) {
76+ if ! l .Enabled (context .Background (), LevelTrace ) {
77+ return
78+ }
79+
80+ var pcs [1 ]uintptr
81+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
82+ r := slog .NewRecord (time .Now (), LevelTrace , fmt .Sprintf (format , v ... ), pcs [0 ])
83+ _ = l .Handler ().Handle (context .Background (), r )
84+ }
85+
86+ func (l * Logger ) Debugf (format string , v ... any ) {
87+ if ! l .Enabled (context .Background (), LevelDebug ) {
88+ return
89+ }
90+
91+ var pcs [1 ]uintptr
92+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
93+ r := slog .NewRecord (time .Now (), LevelDebug , fmt .Sprintf (format , v ... ), pcs [0 ])
94+ _ = l .Handler ().Handle (context .Background (), r )
95+ }
96+
97+ func (l * Logger ) Infof (format string , v ... any ) {
98+ if ! l .Enabled (context .Background (), LevelInfo ) {
99+ return
100+ }
101+
102+ var pcs [1 ]uintptr
103+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
104+ r := slog .NewRecord (time .Now (), LevelInfo , fmt .Sprintf (format , v ... ), pcs [0 ])
105+ _ = l .Handler ().Handle (context .Background (), r )
106+ }
107+
108+ func (l * Logger ) Warnf (format string , v ... any ) {
109+ if ! l .Enabled (context .Background (), LevelWarn ) {
110+ return
111+ }
112+
113+ var pcs [1 ]uintptr
114+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
115+ r := slog .NewRecord (time .Now (), LevelWarn , fmt .Sprintf (format , v ... ), pcs [0 ])
116+ _ = l .Handler ().Handle (context .Background (), r )
117+ }
118+
119+ func (l * Logger ) Errorf (format string , v ... any ) {
120+ if ! l .Enabled (context .Background (), LevelError ) {
121+ return
122+ }
123+
124+ var pcs [1 ]uintptr
125+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
126+ r := slog .NewRecord (time .Now (), LevelError , fmt .Sprintf (format , v ... ), pcs [0 ])
127+ _ = l .Handler ().Handle (context .Background (), r )
128+ }
129+
130+ func (l * Logger ) Fatalf (format string , v ... any ) {
131+ if ! l .Enabled (context .Background (), LevelFatal ) {
132+ return
133+ }
134+
135+ var pcs [1 ]uintptr
136+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
137+ r := slog .NewRecord (time .Now (), LevelFatal , fmt .Sprintf (format , v ... ), pcs [0 ])
138+ _ = l .Handler ().Handle (context .Background (), r )
139+
140+ os .Exit (1 )
141+ }
142+
143+ func (l * Logger ) Panicf (format string , v ... any ) {
144+ if ! l .Enabled (context .Background (), LevelPanic ) {
145+ return
146+ }
147+
148+ var pcs [1 ]uintptr
149+ runtime .Callers (2 , pcs [:]) // skip [Callers, Trace]
150+ r := slog .NewRecord (time .Now (), LevelPanic , fmt .Sprintf (format , v ... ), pcs [0 ])
151+ _ = l .Handler ().Handle (context .Background (), r )
152+
153+ panic (fmt .Sprintf (format , v ... ))
154+ }
155+
73156func (l * Logger ) Trace (msg string , fields ... any ) {
74157 if ! l .Enabled (context .Background (), LevelTrace ) {
75158 return
@@ -120,3 +203,7 @@ func (l *Logger) WithGroup(name string) *Logger {
120203func (l * Logger ) Slog () * slog.Logger {
121204 return l .Logger
122205}
206+
207+ func (l * Logger ) AsLog (level slog.Level ) * log.Logger {
208+ return slog .NewLogLogger (l .Handler (), level )
209+ }
0 commit comments