@@ -41,40 +41,50 @@ type (
41
41
42
42
// LogMessage struct
43
43
LogMessage struct {
44
- title string
45
- details []string
46
- status gologgerstatus.Status
44
+ subheader string
45
+ details []string
46
+ status gologgerstatus.Status
47
47
}
48
48
49
49
// LogError struct
50
50
LogError struct {
51
- title string
52
- errors []error
51
+ subheader string
52
+ errors []error
53
53
}
54
54
55
55
// Logger is an interface for logging messages
56
56
Logger interface {
57
+ LogMessage (header string , logMessage * LogMessage )
58
+ LogError (header string , logError * LogError )
59
+ }
60
+
61
+ // SubLogger is an interface for logging messages with a name
62
+ SubLogger interface {
57
63
LogMessage (logMessage * LogMessage )
58
64
LogError (logError * LogError )
59
65
}
60
66
61
67
// DefaultLogger is a logger that logs messages
62
- DefaultLogger struct {
68
+ DefaultLogger struct {}
69
+
70
+ // DefaultSubLogger is a logger that logs messages with a name
71
+ DefaultSubLogger struct {
63
72
name string
64
73
formattedName string
74
+ logger Logger
65
75
}
66
76
)
67
77
68
78
// NewLogMessage creates a new log message
69
79
func NewLogMessage (
70
- title string ,
80
+ subheader string ,
71
81
status gologgerstatus.Status ,
72
82
details ... string ,
73
83
) * LogMessage {
74
84
return & LogMessage {
75
- title : title ,
76
- status : status ,
77
- details : details ,
85
+ subheader : subheader ,
86
+ status : status ,
87
+ details : details ,
78
88
}
79
89
}
80
90
@@ -98,9 +108,9 @@ func (l *LogMessage) String() string {
98
108
)
99
109
}
100
110
101
- // Add title
102
- if l .title != "" {
103
- formattedLog = append (formattedLog , l .title )
111
+ // Add subheader
112
+ if l .subheader != "" {
113
+ formattedLog = append (formattedLog , l .subheader )
104
114
}
105
115
106
116
// Add formatted details
@@ -113,12 +123,12 @@ func (l *LogMessage) String() string {
113
123
114
124
// NewLogError creates a new log error
115
125
func NewLogError (
116
- title string ,
126
+ subheader string ,
117
127
errors ... error ,
118
128
) * LogError {
119
129
return & LogError {
120
- title : title ,
121
- errors : errors ,
130
+ subheader : subheader ,
131
+ errors : errors ,
122
132
}
123
133
}
124
134
@@ -140,9 +150,9 @@ func (l *LogError) String() string {
140
150
),
141
151
)
142
152
143
- // Add message
144
- if l .title != "" {
145
- formattedLog = append (formattedLog , l .title )
153
+ // Add subheader
154
+ if l .subheader != "" {
155
+ formattedLog = append (formattedLog , l .subheader )
146
156
}
147
157
148
158
// Add formatted errors
@@ -154,47 +164,67 @@ func (l *LogError) String() string {
154
164
}
155
165
156
166
// NewDefaultLogger creates a new logger
157
- func NewDefaultLogger (name string ) * DefaultLogger {
158
- return & DefaultLogger {
159
- name : name ,
160
- formattedName : gologgerstrings .AddBrackets (NameSeparator , name ),
161
- }
167
+ func NewDefaultLogger () * DefaultLogger {
168
+ return & DefaultLogger {}
162
169
}
163
170
164
171
// FormatLogMessage formats a log message
165
- func (d * DefaultLogger ) FormatLogMessage (logMessage * LogMessage ) string {
166
- // Check if the log message is nil
167
- if logMessage == nil {
168
- return d .formattedName
169
- }
170
-
172
+ func (d * DefaultLogger ) FormatLogMessage (
173
+ header string ,
174
+ logMessage * LogMessage ,
175
+ ) string {
171
176
return strings .Join (
172
- []string {d . formattedName , logMessage .String ()},
177
+ []string {header , logMessage .String ()},
173
178
string (MessageSeparator ),
174
179
)
175
180
}
176
181
177
182
// LogMessage logs a message
178
- func (d * DefaultLogger ) LogMessage (logMessage * LogMessage ) {
179
- log .Println (d .FormatLogMessage (logMessage ))
183
+ func (d * DefaultLogger ) LogMessage (header string , logMessage * LogMessage ) {
184
+ log .Println (d .FormatLogMessage (header , logMessage ))
180
185
}
181
186
182
187
// FormatLogError formats a log error
183
- func (d * DefaultLogger ) FormatLogError (logError * LogError ) string {
184
- // Check if the log error is nil
185
- if logError == nil {
186
- return d .formattedName
187
- }
188
-
188
+ func (d * DefaultLogger ) FormatLogError (
189
+ header string ,
190
+ logError * LogError ,
191
+ ) string {
189
192
return strings .Join (
190
193
[]string {
191
- d . formattedName ,
194
+ header ,
192
195
logError .String (),
193
196
}, string (MessageSeparator ),
194
197
)
195
198
}
196
199
197
200
// LogError logs an error
198
- func (d * DefaultLogger ) LogError (logError * LogError ) {
199
- log .Println (d .FormatLogError (logError ))
201
+ func (d * DefaultLogger ) LogError (header string , logError * LogError ) {
202
+ log .Println (d .FormatLogError (header , logError ))
203
+ }
204
+
205
+ // NewDefaultSubLogger creates a new sub logger
206
+ func NewDefaultSubLogger (name string , logger Logger ) (
207
+ * DefaultSubLogger ,
208
+ error ,
209
+ ) {
210
+ // Check if the logger is nil
211
+ if logger == nil {
212
+ return nil , ErrNilLogger
213
+ }
214
+
215
+ return & DefaultSubLogger {
216
+ name : name ,
217
+ formattedName : gologgerstrings .AddBrackets (NameSeparator , name ),
218
+ logger : logger ,
219
+ }, nil
220
+ }
221
+
222
+ // LogMessage logs a message
223
+ func (d * DefaultSubLogger ) LogMessage (logMessage * LogMessage ) {
224
+ d .logger .LogMessage (d .formattedName , logMessage )
225
+ }
226
+
227
+ // LogError logs an error
228
+ func (d * DefaultSubLogger ) LogError (logError * LogError ) {
229
+ d .logger .LogError (d .formattedName , logError )
200
230
}
0 commit comments