@@ -5,7 +5,7 @@ package pkg {
55 package common {
66 package formatter {
77 class "<<module>>" {
8- + EvaluatePreset(loggerName : string, logLevel : level.Level, skipCaller : int ) : map[string] interface{}
8+ + ParseKey(key : string, record : logrecord.Interface ) : interface{}
99 }
1010 }
1111 package handler {
@@ -43,6 +43,7 @@ package pkg {
4343 + Previous () : Level
4444 }
4545 class "<<module>>" {
46+ ~ mapping : map[Level]string
4647 + All : level.Level
4748 + Trace : level.Level
4849 + Debug : level.Level
@@ -59,19 +60,48 @@ package pkg {
5960 }
6061 "<<module>>" ..> Level : uses
6162 }
63+ package logrecord {
64+ interface Interface {
65+ + Name () : string
66+ + Time () : string
67+ + Timestamp () : int64
68+ + Level () : level . Level
69+ + FileName () : string
70+ + FileLine () : int
71+ }
72+ struct LogRecord implements Interface {
73+ ~ name : string
74+ ~ timeFormat : string
75+ ~ timestamp : time.Time
76+ ~ level : level.Level
77+ ~ fileName : string
78+ ~ fileLine : int
79+ + Name () : string
80+ + Time () : string
81+ + Timestamp () : int64
82+ + Level () : level . Level
83+ + FileName () : string
84+ + FileLine () : int
85+ }
86+ class "<<module>>" {
87+ + New(name : string, level : level.Level, timeFormat : string, skipCaller : int) : *LogRecord
88+ }
89+
90+ "<<module>>" ..> LogRecord : uses
91+ }
6292 }
6393 package logger {
6494 package formatter {
6595 interface Interface {
6696 + Template () : string
67- + Format (message : string , loggerName : string , logLevel : level . Level , colored : bool) : string
97+ + Format (record : logrecord . Interface , colored : bool) : string
6898 }
6999
70100 struct Formatter implements Interface {
71101 ~ template : string
72102 + IsEqual (anotherFormatter : *Formatter ) : bool
73103 + Template () : string
74- + Format (message : string , loggerName : string , logLevel : level . Level , colored : bool) : string
104+ + Format (record : logrecord . Interface , colored : bool) : string
75105 }
76106
77107 class "<<module>>" {
@@ -90,7 +120,7 @@ package pkg {
90120 + ToLevel () level . Level
91121 + SetToLevel (toLevel level . Level )
92122 + Formatter () : formatter . Interface
93- + Write (logName : string , logLevel : level . Level , message : string, parameters : ...any )
123+ + Write (record : logrecord . Interface )
94124 }
95125 struct Handler implements Interface {
96126 ~ *handler . Handler
@@ -101,7 +131,7 @@ package pkg {
101131 + ToLevel () : level . Level
102132 + SetToLevel (level : level . Level )
103133 + Formatter () : formatter . Interface
104- + Write (logName : string , logLevel : level . Level , message : string, parameters : ...any )
134+ + Write (record : logrecord . Interface )
105135 }
106136 class "<<module>>" {
107137 ~ osOpenFile : os.OpenFile(name : string, flag : int, perm : FileMode) : (*File, error)
@@ -116,6 +146,33 @@ package pkg {
116146
117147 "<<module>>" ..> Handler : uses
118148 }
149+ package logrecord {
150+ interface Interface {
151+ + Name () : string
152+ + Time () : string
153+ + Timestamp () : int64
154+ + Level () : level . Level
155+ + FileName () : string
156+ + FileLine () : int
157+ + Message () : string
158+ }
159+ struct LogRecord implements Interface {
160+ ~ *logrecord . LogRecord
161+ ~ message : string
162+ + Name () : string
163+ + Time () : string
164+ + Timestamp () : int64
165+ + Level () : level . Level
166+ + FileName () : string
167+ + FileLine () : int
168+ + Message () : string
169+ }
170+ class "<<module>>" {
171+ + New(name : string, level : level.Level, timeFormat : string, message : string, parameters : []any, skipCaller : int) : *LogRecord
172+ }
173+
174+ "<<module>>" ..> LogRecord : uses
175+ }
119176 interface baseLoggerInterface {
120177 + Log (level : level . Level , message : string, parameters : ...any)
121178 + Name () : string
@@ -219,27 +276,27 @@ package pkg {
219276 struct baseFormatter {
220277 ~ template : map[string]string
221278 + Template () : map [string ]string
222- + Format (loggerName : string , logLevel : level . Level , parameters : ...any ) : map[string]interface{}
279+ + Format (record : logrecord . Interface ) : map[string]interface{}
223280 }
224281
225282 interface Interface {
226283 + Template () : string
227- + Format (loggerName : string , logLevel : level . Level , colored : bool, parameters : ...any ) : string
284+ + Format (record : logrecord . Interface , colored : bool) : string
228285 }
229286
230287 struct JSONFormatter implements Interface {
231288 ~ baseFormatter : baseInterface
232289 ~ pretty : bool
233290 + Template () : string
234- + Format (loggerName : string , logLevel : level . Level , colored : bool, parameters : ...any ) : string
291+ + Format (record : logrecord . Interface , colored : bool) : string
235292 }
236293
237294 struct KeyValueFormatter implements Interface {
238295 ~ baseFormatter : baseInterface
239296 ~ keyValueDelimiter : string
240297 ~ pairSeparator : string
241298 + Template () : string
242- + Format (loggerName : string , logLevel : level . Level , colored : bool, parameters : ...any ) : string
299+ + Format (record : logrecord . Interface , colored : bool) : string
243300 }
244301
245302 class "<<module>>" {
@@ -262,7 +319,7 @@ package pkg {
262319 + ToLevel () level . Level
263320 + SetToLevel (toLevel level . Level )
264321 + Formatter () : formatter . Interface
265- + Write (logName : string , logLevel : level . Level , parameters : ...any )
322+ + Write (record : logrecord . Interface )
266323 }
267324
268325 struct Handler implements Interface {
@@ -274,7 +331,7 @@ package pkg {
274331 + ToLevel () : level . Level
275332 + SetToLevel (level : level . Level )
276333 + Formatter () : formatter . Interface
277- + Write (logName : string , logLevel : level . Level , parameters : ...any )
334+ + Write (record : logrecord . Interface )
278335 }
279336
280337 class "<<module>>" {
@@ -289,6 +346,33 @@ package pkg {
289346
290347 "<<module>>" ..> Handler : uses
291348 }
349+ package logrecord {
350+ interface Interface {
351+ + Name () : string
352+ + Time () : string
353+ + Timestamp () : int64
354+ + Level () : level . Level
355+ + FileName () : string
356+ + FileLine () : int
357+ + Parameters () : map [string ]interface {}
358+ }
359+ struct LogRecord implements Interface {
360+ ~ *logrecord . LogRecord
361+ ~ parameters : map[string]interface{}
362+ + Name () : string
363+ + Time () : string
364+ + Timestamp () : int64
365+ + Level () : level . Level
366+ + FileName () : string
367+ + FileLine () : int
368+ + Parameters () : map [string ]interface {}
369+ }
370+ class "<<module>>" {
371+ + New(name : string, level : level.Level, timeFormat : string, parameters : map[string]interface{}, skipCaller : int) : *LogRecord
372+ }
373+
374+ "<<module>>" ..> LogRecord : uses
375+ }
292376 interface baseLoggerInterface {
293377 + Log (level : level . Level , parameters : ...any)
294378 + Name () : string
@@ -358,7 +442,7 @@ package pkg {
358442 ~ rootLogger : *Logger
359443 ~ fromLevel : level.Level
360444 ~ toLevel : level.Level
361- ~ template : string
445+ ~ template : map[string] string
362446 ~ init ()
363447 + New(name : string) : *Logger
364448 + WithFromLevel(fromLevel : level.Level) : Option
@@ -397,6 +481,7 @@ package pkg {
397481 }
398482}
399483
484+ "pkg.common.formatter.<<module>>" ..> "pkg . common . logrecord . Interface " : uses
400485pkg . common . handler . Handler *-- pkg . common . level . Level : contains
401486pkg . logger . handler . Handler *-- pkg . common . handler . Handler : contains
402487pkg . logger . handler . Handler *-- pkg . logger . formatter . Interface : contains
@@ -406,6 +491,10 @@ pkg.structuredlogger.handler.Handler *-- pkg.common.handler.Handler : contains
406491pkg . structuredlogger . handler . Handler *-- pkg . structuredlogger . formatter . Interface : contains
407492pkg . structuredlogger . baseLogger *-- "0..* " pkg . structuredlogger . handler . Interface : contains
408493pkg . structuredlogger . formatter . baseFormatter ..> "pkg . common . formatter . <<module >>" : uses
494+ pkg . logger . logrecord . LogRecord *-- "pkg . common . logrecord . LogRecord " : contains
495+ pkg . structuredlogger . logrecord . LogRecord *-- "pkg . common . logrecord . LogRecord " : contains
496+ pkg . logger . handler . Handler ..> pkg . logger . logrecord . Interface : uses
497+ pkg . structuredlogger . handler . Handler ..> pkg . structuredlogger . logrecord . Interface : uses
409498
410499
411500@enduml
0 commit comments