Skip to content

Commit a917afe

Browse files
committed
go-aah/aah#55 aah logger binding to go logger
1 parent 3277068 commit a917afe

File tree

8 files changed

+51
-2
lines changed

8 files changed

+51
-2
lines changed

console_receiver.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,8 @@ func (c *ConsoleReceiver) Log(entry *Entry) {
9191
_, _ = c.out.Write(resetColor)
9292
}
9393
}
94+
95+
// Writer method returns the current log writer.
96+
func (c *ConsoleReceiver) Writer() io.Writer {
97+
return c.out
98+
}

console_receiver_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,5 @@ func testConsoleLogger(t *testing.T, cfgStr string) {
121121
logger.Error("Yes, yes, yes - finally an error")
122122
logger.Errorf("Yes, yes, yes - %v", "finally an error")
123123

124+
assert.NotNil(t, logger.ToGoLogger())
124125
}

default.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package log
66

77
import (
88
"fmt"
9+
"io"
10+
slog "log"
911
"os"
1012

1113
"aahframework.org/config.v0"
@@ -123,6 +125,16 @@ func Panicln(format string, v ...interface{}) {
123125
panic(fmt.Sprintf(format, v...))
124126
}
125127

128+
// Writer method returns the writer of default logger.
129+
func Writer() io.Writer {
130+
return std.receiver.Writer()
131+
}
132+
133+
// ToGoLogger method wraps the current log writer into Go Logger instance.
134+
func ToGoLogger() *slog.Logger {
135+
return std.ToGoLogger()
136+
}
137+
126138
// SetDefaultLogger method sets the given logger instance as default logger.
127139
func SetDefaultLogger(l *Logger) {
128140
std = l

discard_receiver.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44

55
package log
66

7-
import "aahframework.org/config.v0"
7+
import (
8+
"io"
9+
"io/ioutil"
10+
11+
"aahframework.org/config.v0"
12+
)
813

914
var _ Receiver = &DiscardReceiver{}
1015

@@ -31,3 +36,8 @@ func (d *DiscardReceiver) IsCallerInfo() bool {
3136
// Log method writes the buf to
3237
func (d *DiscardReceiver) Log(_ *Entry) {
3338
}
39+
40+
// Writer method returns the current log writer.
41+
func (d *DiscardReceiver) Writer() io.Writer {
42+
return ioutil.Discard
43+
}

file_receiver.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ func (f *FileReceiver) Log(entry *Entry) {
111111
f.stats.lines++
112112
}
113113

114+
// Writer method returns the current log writer.
115+
func (f *FileReceiver) Writer() io.Writer {
116+
return f.out
117+
}
118+
114119
//‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
115120
// FileReceiver Unexported methods
116121
//___________________________________

file_receiver_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ func TestFileLoggerRotation(t *testing.T) {
6868
}
6969
`
7070
testFileLogger(t, fileConfigStrJSON, 1000)
71+
7172
cleaupFiles("*.log")
7273
}
7374

@@ -156,4 +157,5 @@ func testFileLogger(t *testing.T, cfgStr string, loop int) {
156157
logger.Errorf("Yes, yes, yes - %v", "finally an error")
157158
}
158159

160+
assert.NotNil(t, logger.ToGoLogger())
159161
}

log.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ package log
2424
import (
2525
"errors"
2626
"fmt"
27+
"io"
28+
slog "log"
2729
"os"
2830
"strings"
2931
"sync"
@@ -65,7 +67,7 @@ const (
6567

6668
var (
6769
// Version no. of aahframework.org/log library
68-
Version = "0.3.2"
70+
Version = "0.4"
6971

7072
// FmtFlags is the list of log format flags supported by aah/log library
7173
// Usage of flag order is up to format composition.
@@ -113,6 +115,7 @@ type (
113115
Init(cfg *config.Config) error
114116
SetPattern(pattern string) error
115117
IsCallerInfo() bool
118+
Writer() io.Writer
116119
Log(e *Entry)
117120
}
118121

@@ -203,6 +206,11 @@ func (l *Logger) SetReceiver(receiver Receiver) error {
203206
return l.receiver.Init(l.cfg)
204207
}
205208

209+
// ToGoLogger method wraps the current log writer into Go Logger instance.
210+
func (l *Logger) ToGoLogger() *slog.Logger {
211+
return slog.New(l.receiver.Writer(), "", slog.LstdFlags)
212+
}
213+
206214
//‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
207215
// Logger logging methods
208216
//_______________________________________

log_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,16 @@ func TestMisc(t *testing.T) {
7272
discard.Log(&Entry{})
7373
_ = discard.SetPattern("nothing")
7474
assert.False(t, discard.IsCallerInfo())
75+
assert.NotNil(t, discard.Writer())
7576

7677
// util
7778
assert.Nil(t, getReceiverByName("SMTP"))
7879
assert.Equal(t, "", formatTime(time.Time{}))
80+
81+
stdLogger := ToGoLogger()
82+
assert.NotNil(t, stdLogger)
83+
assert.NotNil(t, Writer())
84+
stdLogger.Print("This is aah logger binds go logger")
7985
}
8086

8187
func testPanic(logger *Logger, method, msg string) {

0 commit comments

Comments
 (0)