@@ -40,40 +40,48 @@ import { ILoadTestConfig, ITestConfig } from "./testConfigFile";
4040const packageName = `${ pkgName } @${ pkgVersion } ` ;
4141
4242class FileLogger implements ITelemetryBufferedLogger {
43- private static readonly loggerP = new LazyPromise < FileLogger > ( async ( ) => {
44- if ( process . env . FLUID_TEST_LOGGER_PKG_PATH !== undefined ) {
45- await import ( process . env . FLUID_TEST_LOGGER_PKG_PATH ) ;
46- const logger = getTestLogger ?.( ) ;
47- assert ( logger !== undefined , "Expected getTestLogger to return something" ) ;
48- return new FileLogger ( logger ) ;
49- } else {
50- return new FileLogger ( ) ;
51- }
52- } ) ;
43+ private static readonly loggerP = ( minLogLevel ?: LogLevel ) =>
44+ new LazyPromise < FileLogger > ( async ( ) => {
45+ if ( process . env . FLUID_TEST_LOGGER_PKG_PATH !== undefined ) {
46+ await import ( process . env . FLUID_TEST_LOGGER_PKG_PATH ) ;
47+ const logger = getTestLogger ?.( ) ;
48+ assert ( logger !== undefined , "Expected getTestLogger to return something" ) ;
49+ return new FileLogger ( logger , minLogLevel ) ;
50+ } else {
51+ return new FileLogger ( undefined , minLogLevel ) ;
52+ }
53+ } ) ;
5354
54- public static async createLogger ( dimensions : {
55- driverType : string ;
56- driverEndpointName : string | undefined ;
57- profile : string ;
58- runId : number | undefined ;
59- } ) {
55+ public static async createLogger (
56+ dimensions : {
57+ driverType : string ;
58+ driverEndpointName : string | undefined ;
59+ profile : string ;
60+ runId : number | undefined ;
61+ } ,
62+ minLogLevel : LogLevel = LogLevel . default ,
63+ ) {
64+ const logger = await this . loggerP ( minLogLevel ) ;
6065 return createChildLogger ( {
61- logger : await this . loggerP ,
66+ logger,
6267 properties : {
6368 all : dimensions ,
6469 } ,
6570 } ) ;
6671 }
6772
6873 public static async flushLogger ( runInfo ?: { url : string ; runId ?: number } ) {
69- await ( await this . loggerP ) . flush ( runInfo ) ;
74+ await ( await this . loggerP ( ) ) . flush ( runInfo ) ;
7075 }
7176
7277 private error : boolean = false ;
7378 private readonly schema = new Map < string , number > ( ) ;
7479 private logs : ITelemetryBaseEvent [ ] = [ ] ;
7580
76- private constructor ( private readonly baseLogger ?: ITelemetryBufferedLogger ) { }
81+ private constructor (
82+ private readonly baseLogger ?: ITelemetryBufferedLogger ,
83+ public readonly minLogLevel ?: LogLevel ,
84+ ) { }
7785
7886 async flush ( runInfo ?: { url : string ; runId ?: number } ) : Promise < void > {
7987 const baseFlushP = this . baseLogger ?. flush ( ) ;
@@ -174,21 +182,24 @@ export async function initialize(
174182 generateConfigurations ( seed , optionsOverride ?. configurations ) ,
175183 ) ;
176184
177- const logger = await createLogger ( {
178- driverType : testDriver . type ,
179- driverEndpointName : testDriver . endpointName ,
180- profile : profileName ,
181- runId : undefined ,
182- } ) ;
183- logger . minLogLevel = random . pick ( [ LogLevel . verbose , LogLevel . default ] ) ;
185+ const minLogLevel = random . pick ( [ LogLevel . verbose , LogLevel . default ] ) ;
186+ const logger = await createLogger (
187+ {
188+ driverType : testDriver . type ,
189+ driverEndpointName : testDriver . endpointName ,
190+ profile : profileName ,
191+ runId : undefined ,
192+ } ,
193+ minLogLevel ,
194+ ) ;
184195
185196 logger . sendTelemetryEvent ( {
186197 eventName : "RunConfigOptions" ,
187198 details : JSON . stringify ( {
188199 loaderOptions,
189200 containerOptions,
190201 configurations,
191- logLevel : logger . minLogLevel ,
202+ logLevel : minLogLevel ,
192203 } ) ,
193204 } ) ;
194205
0 commit comments