@@ -24,6 +24,7 @@ declare module 'reggol' {
24
24
namespace LoggerService {
25
25
export interface Config {
26
26
bufferSize ?: number
27
+ console ?: Exporter . Console . Options & { enabled ?: boolean }
27
28
}
28
29
29
30
export interface Intercept {
@@ -37,6 +38,13 @@ interface LoggerService extends Pick<Logger, Type> {
37
38
}
38
39
39
40
class LoggerService < C extends Context = Context > extends Service < LoggerService . Intercept , C > {
41
+ static Config : z < LoggerService . Config > = z . object ( {
42
+ bufferSize : z . number ( ) . default ( 1000 ) ,
43
+ console : z . object ( {
44
+ enabled : z . boolean ( ) . default ( true ) ,
45
+ } ) ,
46
+ } )
47
+
40
48
Config = z . object ( {
41
49
name : z . string ( ) ,
42
50
level : z . number ( ) ,
@@ -45,20 +53,21 @@ class LoggerService<C extends Context = Context> extends Service<LoggerService.I
45
53
factory = new Factory ( )
46
54
buffer : Message [ ] = [ ]
47
55
48
- constructor ( ctx : C , public config : LoggerService . Config = { } ) {
56
+ constructor ( ctx : C , public config : LoggerService . Config ) {
49
57
super ( ctx , 'logger' )
50
58
51
- const { bufferSize = 1000 } = config
52
-
53
- this . factory . addExporter ( new Exporter . Console ( {
54
- timestamp : Date . now ( ) ,
55
- } ) )
59
+ if ( config . console ! . enabled ) {
60
+ this . factory . addExporter ( new Exporter . Console ( {
61
+ timestamp : Date . now ( ) ,
62
+ ...config . console ,
63
+ } ) )
64
+ }
56
65
57
66
this . factory . addExporter ( {
58
67
colors : 3 ,
59
68
export : ( message ) => {
60
69
this . buffer . push ( message )
61
- this . buffer = this . buffer . slice ( - bufferSize )
70
+ this . buffer = this . buffer . slice ( - config . bufferSize ! )
62
71
} ,
63
72
} )
64
73
0 commit comments