@@ -574,9 +574,16 @@ function parseIntegrityChecks(config) {
574574 return integrityChecks ;
575575}
576576
577+ const serverAccessLogsModes = {
578+ DISABLED : 'DISABLED' ,
579+ LOG_ONLY : 'LOG_ONLY' ,
580+ ENABLED : 'ENABLED' ,
581+ } ;
582+
577583function parseServerAccessLogs ( config ) {
584+ const validModes = Object . values ( serverAccessLogsModes ) ;
578585 const res = {
579- enabled : false ,
586+ mode : serverAccessLogsModes . DISABLED ,
580587 outputFile : '/logs/server-access.log' ,
581588 highWaterMarkBytes : 10485760 ,
582589 retryReopenDelayMS : 1000 ,
@@ -585,7 +592,7 @@ function parseServerAccessLogs(config) {
585592
586593 if ( config && config . serverAccessLogs ) {
587594 const settings = [
588- { key : 'enabled ' , type : 'boolean ' } ,
595+ { key : 'mode ' , type : 'string ' } ,
589596 { key : 'outputFile' , type : 'string' } ,
590597 { key : 'highWaterMarkBytes' , type : 'number' } ,
591598 { key : 'retryReopenDelayMS' , type : 'number' } ,
@@ -599,10 +606,17 @@ function parseServerAccessLogs(config) {
599606 res [ setting . key ] = config . serverAccessLogs [ setting . key ] ;
600607 }
601608 } ) ;
609+
610+ if ( 'mode' in config . serverAccessLogs ) {
611+ assert ( validModes . includes ( config . serverAccessLogs . mode ) ,
612+ `bad config: serverAccessLogs.mode must be one of: ${ validModes . join ( ', ' ) } ` ) ;
613+ }
602614 }
603615
604- if ( process . env . S3_ENABLE_SERVER_ACCESS_LOGS === 'true' ) {
605- res . enabled = true ;
616+ if ( process . env . S3_SERVER_ACCESS_LOGS_MODE ) {
617+ assert ( validModes . includes ( process . env . S3_SERVER_ACCESS_LOGS_MODE ) ,
618+ `bad config: S3_SERVER_ACCESS_LOGS_MODE must be one of: ${ validModes . join ( ', ' ) } ` ) ;
619+ res . mode = process . env . S3_SERVER_ACCESS_LOGS_MODE ;
606620 }
607621
608622 return res ;
@@ -2171,6 +2185,7 @@ module.exports = {
21712185 locationConstraintAssert,
21722186 ConfigObject : Config ,
21732187 config : new Config ( ) ,
2188+ serverAccessLogsModes,
21742189 requestsConfigAssert,
21752190 bucketNotifAssert,
21762191 azureGetStorageAccountName,
0 commit comments