Skip to content

Commit 41816e3

Browse files
committed
add singleton logger
1 parent dd1f835 commit 41816e3

File tree

5 files changed

+240
-142
lines changed

5 files changed

+240
-142
lines changed

README.md

Lines changed: 39 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -29,102 +29,86 @@ It's a piece of code that sits between the application and the logging package a
2929
```
3030
$ go get -u github.com/vuduongtp/go-logadapter
3131
```
32-
## Import to go
32+
## Import
3333
```go
3434
import "github.com/vuduongtp/go-logadapter"
3535
```
3636
## Basic Example
3737
View full example [here](https://github.com/vuduongtp/go-logadapter/blob/main/test/test.go)
38-
### Create new simple logger
38+
### Simple example
3939
```go
40-
logger := logadapter.NewLogger()
41-
logger.Debug("test")
40+
logadapter.Debug("debug message")
41+
logadapter.Error("error message")
42+
logadapter.Warn("warn message")
4243
```
4344
```
44-
{"level":"info","msg":"Logger instance has been successfully initialized","time":"2023-03-05 20:47:28.369102"}
45-
{"level":"debug","msg":"test","time":"2023-03-05 20:47:28.369163"}
45+
{"level":"debug","msg":"debug message","time":"2023-03-17 00:10:17.18915"}
46+
{"level":"error","msg":"error message","time":"2023-03-17 00:10:17.18924"}
47+
{"level":"warning","msg":"warn message","time":"2023-03-17 00:10:17.18924"}
4648
```
4749
### Create new logger with config
48-
**Log to file**
4950
```go
50-
logger := logadapter.NewLoggerWithConfig(&logadapter.Config{
51-
LogLevel: logadapter.DebugLevel,
52-
LogFormat: logadapter.JSONFormat,
53-
TimestampFormat: time.RFC3339Nano,
54-
IsUseLogFile: true,
55-
FileConfig: &logadapter.FileConfig{
56-
Filename: "logs",
57-
MaxSize: 50,
58-
MaxBackups: 10,
59-
MaxAge: 30,
60-
IsCompress: false,
61-
IsUseLocalTime: false,
62-
},
63-
})
64-
logger.Debug("test")
65-
```
66-
```
67-
{"level":"info","msg":"Logger instance has been successfully initialized","time":"2023-03-05 20:47:28.369102"}
68-
{"level":"debug","msg":"test","time":"2023-03-05 20:47:28.369163"}
51+
logadapter.SetLogger(logadapter.NewWithConfig(&logadapter.Config{
52+
LogLevel: logadapter.DebugLevel,
53+
LogFormat: logadapter.JSONFormat,
54+
TimestampFormat: time.RFC3339Nano,
55+
IsUseLogFile: true,
56+
FileConfig: &logadapter.FileConfig{
57+
Filename: "logs",
58+
MaxSize: 50,
59+
MaxBackups: 10,
60+
MaxAge: 30,
61+
IsCompress: false,
62+
IsUseLocalTime: false,
63+
},
64+
}))
65+
logadapter.Debug("test")
66+
```
67+
```
68+
{"level":"debug","msg":"test","time":"2023-03-17T00:14:56.763181+07:00"}
6969
```
7070
**Log with pertty JSON format**
7171
```go
72-
logger := logadapter.NewLoggerWithConfig(&logadapter.Config{
73-
LogLevel: logadapter.DebugLevel,
74-
LogFormat: logadapter.PrettyJSONFormat,
75-
TimestampFormat: time.RFC3339Nano,
76-
IsUseLogFile: false,
77-
})
78-
logger.Debug("test")
72+
logadapter.SetFormatter(logadapter.PrettyJSONFormat)
73+
logadapter.Debug("message")
7974
```
8075
```
81-
{
82-
"level": "info",
83-
"msg": "Logger instance has been successfully initialized",
84-
"time": "2023-03-13T15:10:57.02729+07:00"
85-
}
8676
{
8777
"level": "debug",
88-
"msg": "test",
89-
"time": "2023-03-13T15:10:57.027391+07:00"
78+
"msg": "message",
79+
"time": "2023-03-17 00:03:07.14439"
9080
}
9181
```
9282
**Log with text format**
9383
```go
94-
logger := logadapter.NewLoggerWithConfig(&logadapter.Config{
95-
LogLevel: logadapter.DebugLevel,
96-
LogFormat: logadapter.TextFormat,
97-
TimestampFormat: time.RFC3339Nano,
98-
IsUseLogFile: false,
99-
})
100-
logger.Debug("test")
84+
logadapter.SetFormatter(logadapter.TextFormat)
85+
logadapter.Debug("message")
10186
```
10287
```
103-
time="2023-03-13T15:12:06.700689+07:00" level=info msg="Logger instance has been successfully initialized"
104-
time="2023-03-13T15:12:06.700763+07:00" level=debug msg=test
88+
time="2023-03-17 00:03:53.74972" level=debug msg=message
10589
```
106-
### Set logadapter to gorm logger
90+
### Set gorm logger
10791
```go
10892
// * set log adapter for gorm logging
10993
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
11094
if err != nil {
11195
panic("failed to connect database")
11296
}
113-
db.Logger = logadapter.NewGormLogAdapter(logadapter.NewLogger())
97+
db.Logger = logadapter.NewGormLogger()
11498
```
115-
### Set logadapter to Echo
99+
### Set echo logger
116100
```go
117101
e := echo.New()
118102
// * set log adapter for echo instance
119-
e.Logger = logadapter.NewEchoLogAdapter(logadapter.NewLogger())
103+
e.Logger = logadapter.NewEchoLogger()
120104

121-
// * use logger middleware for echo web framework
105+
// * use log adapter middleware for echo web framework
122106
e.Use(logadapter.NewEchoLoggerMiddleware())
123107

124108
// * log with echo context for log request_id
125109
echoContext := e.AcquireContext() // example echo context, should be replaced with echo.Request().Context()
126110
logadapter.LogWithEchoContext(echoContext, "this is message", logadapter.LogTypeDebug, map[string]interface{}{
127111
"field_name": "this is log field",
128-
})
112+
}) // log message with extend field
129113
```
130114
**If you really want to help us, simply Fork the project and apply for Pull Request. Thanks.**

0 commit comments

Comments
 (0)