File tree Expand file tree Collapse file tree 4 files changed +71
-5
lines changed Expand file tree Collapse file tree 4 files changed +71
-5
lines changed Original file line number Diff line number Diff line change @@ -260,6 +260,30 @@ A `settings` object is the first parameter passed to the `tslog` constructor:
260260const logger = new Logger <ILogObj >({ /* SETTINGS */ }, defaultLogObject );
261261```
262262
263+ ##### Changing settings at runtime
264+ ` settings ` is a public property and can also be changed on runtime.
265+
266+ Example on changing ` minLevel ` on runtime:
267+
268+ ``` typescript
269+ const logger = new Logger ({
270+ minLevel: 1
271+ });
272+
273+ // visible
274+ logger .log (1 , " level_one" , " LOG1" );
275+ // visible
276+ logger .log (2 , " level_two" , " LOG2" );
277+
278+ // change minLevel to 2
279+ logger .settings .minLevel = 2 ;
280+
281+ // hidden
282+ logger .log (1 , " level_one" , " LOG3" );
283+ // visible
284+ logger .log (2 , " level_two" , " LOG4" );
285+ ```
286+
263287#### Type: pretty, json, hidden
264288
265289- ` pretty ` ** Default setting** prints out a formatted structured "pretty" log entry.
Original file line number Diff line number Diff line change @@ -49,8 +49,6 @@ Donations help me allocate more time for my open source work.
4949
5050## Install
5151
52- > ❗ ** ` tslog ` is a native ES module.**
53-
5452``` bash
5553npm install tslog
5654```
@@ -262,6 +260,30 @@ A `settings` object is the first parameter passed to the `tslog` constructor:
262260const logger = new Logger <ILogObj >({ /* SETTINGS */ }, defaultLogObject );
263261```
264262
263+ ##### Changing settings at runtime
264+ ` settings ` is a public property and can also be changed on runtime.
265+
266+ Example on changing ` minLevel ` on runtime:
267+
268+ ``` typescript
269+ const logger = new Logger ({
270+ minLevel: 1
271+ });
272+
273+ // visible
274+ logger .log (1 , " level_one" , " LOG1" );
275+ // visible
276+ logger .log (2 , " level_two" , " LOG2" );
277+
278+ // change minLevel to 2
279+ logger .settings .minLevel = 2 ;
280+
281+ // hidden
282+ logger .log (1 , " level_one" , " LOG3" );
283+ // visible
284+ logger .log (2 , " level_two" , " LOG4" );
285+ ```
286+
265287#### Type: pretty, json, hidden
266288
267289- ` pretty ` ** Default setting** prints out a formatted structured "pretty" log entry.
Original file line number Diff line number Diff line change @@ -6,8 +6,9 @@ export * from "./interfaces";
66
77export class BaseLogger < LogObj > {
88 private readonly runtime : "browser" | "nodejs" | "unknown" ;
9- private readonly settings : ISettings < LogObj > ;
10- private subLoggers : BaseLogger < LogObj > [ ] = [ ] ;
9+ public settings : ISettings < LogObj > ;
10+ // not needed yet
11+ //private subLoggers: BaseLogger<LogObj>[] = [];
1112
1213 constructor ( settings ?: ISettingsParam < LogObj > , private logObj ?: LogObj , private stackDepthLevel : number = 4 ) {
1314 const isBrowser = ! [ typeof window , typeof document ] . includes ( "undefined" ) ;
@@ -175,7 +176,7 @@ export class BaseLogger<LogObj> {
175176 logObj ?: LogObj ,
176177 stackDepthLevel ?: number
177178 ) => this) ( subLoggerSettings , this . logObj , this . stackDepthLevel ) ;
178- this . subLoggers . push ( subLogger ) ;
179+ // this.subLoggers.push(subLogger);
179180 return subLogger ;
180181 }
181182
Original file line number Diff line number Diff line change @@ -225,4 +225,23 @@ describe("Pretty: Settings", () => {
225225 expect ( getConsoleLog ( ) ) . toContain ( `**${ new Date ( ) . toISOString ( ) . split ( "." ) [ 0 ] } ` ) ;
226226 expect ( getConsoleLog ( ) ) . toContain ( "** Test" ) ;
227227 } ) ;
228+
229+ test ( "Change settings: minLevel" , ( ) : void => {
230+ const logger = new Logger ( {
231+ type : "pretty" ,
232+ minLevel : 1 ,
233+ } ) ;
234+ logger . log ( 1 , "custom_level_one" , "LOG1" ) ;
235+ logger . log ( 2 , "custom_level_two" , "LOG2" ) ;
236+
237+ // change minLevel to 2
238+ logger . settings . minLevel = 2 ;
239+ logger . log ( 1 , "custom_level_one" , "LOG3" ) ;
240+ logger . log ( 2 , "custom_level_two" , "LOG4" ) ;
241+
242+ expect ( getConsoleLog ( ) ) . toContain ( `LOG1` ) ;
243+ expect ( getConsoleLog ( ) ) . toContain ( `LOG2` ) ;
244+ expect ( getConsoleLog ( ) ) . not . toContain ( `LOG3` ) ;
245+ expect ( getConsoleLog ( ) ) . toContain ( `LOG4` ) ;
246+ } ) ;
228247} ) ;
You can’t perform that action at this time.
0 commit comments