File tree Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -301,6 +301,7 @@ describe('CliRepl', function () {
301301 'browser' ,
302302 'updateURL' ,
303303 'disableLogging' ,
304+ 'logLocation' ,
304305 ] satisfies ( keyof CliUserConfig ) [ ] ) ;
305306 } ) ;
306307
@@ -1342,6 +1343,15 @@ describe('CliRepl', function () {
13421343 expect ( emitSpy ) . not . calledWith ( 'mongosh:logger-initialized' ) ;
13431344 expect ( cliRepl . logWriter ) . is . undefined ;
13441345 } ) ;
1346+
1347+ it ( 'can set the log location' , async function ( ) {
1348+ const testPath = './test/path' ;
1349+ cliRepl . config . logLocation = testPath ;
1350+ await cliRepl . start ( await testServer . connectionString ( ) , { } ) ;
1351+
1352+ expect ( cliRepl . getConfig ( 'logLocation' ) ) . is . true ;
1353+ expect ( cliRepl . logWriter ?. logFilePath ) . equals ( testPath ) ;
1354+ } ) ;
13451355 } ) ;
13461356
13471357 context ( 'analytics integration' , function ( ) {
Original file line number Diff line number Diff line change @@ -190,7 +190,8 @@ export class CliRepl implements MongoshIOProvider {
190190 } ) ;
191191
192192 this . logManager = new MongoLogManager ( {
193- directory : this . shellHomeDirectory . localPath ( '.' ) ,
193+ directory :
194+ this . getConfig ( 'logLocation' ) ?? this . shellHomeDirectory . localPath ( '.' ) ,
194195 retentionDays : 30 ,
195196 maxLogFileCount : + (
196197 process . env . MONGOSH_TEST_ONLY_MAX_LOG_FILE_COUNT || 100
Original file line number Diff line number Diff line change @@ -502,6 +502,7 @@ export class CliUserConfig extends SnippetShellUserConfig {
502502 browser : undefined | false | string = undefined ;
503503 updateURL = 'https://downloads.mongodb.com/compass/mongosh.json' ;
504504 disableLogging = false ;
505+ logLocation : string | undefined = undefined ;
505506}
506507
507508export class CliUserConfigValidator extends SnippetShellUserConfigValidator {
@@ -574,6 +575,11 @@ export class CliUserConfigValidator extends SnippetShellUserConfigValidator {
574575 return `${ key } must be a valid URL or empty` ;
575576 }
576577 return null ;
578+ case 'logLocation' :
579+ if ( value !== undefined && typeof value !== 'string' ) {
580+ return `${ key } must be a valid path or empty` ;
581+ }
582+ return null ;
577583 default :
578584 return super . validate (
579585 key as keyof SnippetShellUserConfig ,
You can’t perform that action at this time.
0 commit comments