github.com/Schaudge/grailbase@v0.0.0-20240223061707-44c758a471c0/file/s3file/internal/autolog/autolog.go (about) 1 package autolog 2 3 import ( 4 "flag" 5 "time" 6 ) 7 8 var autologPeriod = flag.Duration("s3file.autolog_period", 0, 9 "Interval for logging s3transport metrics. Zero disables logging.") 10 11 // Register configures an internal ticker to periodically call logFn. 12 func Register(logFn func()) { 13 if *autologPeriod == 0 { 14 return 15 } 16 go func() { 17 ticker := time.NewTicker(*autologPeriod) 18 defer ticker.Stop() 19 for { 20 select { 21 case _ = <-ticker.C: 22 logFn() 23 } 24 } 25 }() 26 }