Skip to content
Snippets Groups Projects
Select Git revision
  • 597105d1c9565dd6ccb35a8f50989a02b3449cf4
  • master default protected
  • feature/PRXS-3156-SaveRevision
  • PRXS-3421-RecursiveReferences
  • feature/PRXS-NotifyAttachment
  • feature/PRXS-3170-TemplateFuncsFix
  • feature/PRXS-3143-3235-ReferenceOptions
  • feature/PRXS-1869-SuperUser
  • feature/PRXS-3106-NoCache
  • release/0.33
  • feature/2781-SpacesLoggingMiddleware
  • feature/PRXS-3143-LimitReferenceFields
  • feature/PRXS-3234-FeaturePruneIdents
  • feature/3109-SerializeFeature
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • v0.34.0
  • v0.33.2
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
41 results

config.go

Blame
  • config.go 1.29 KiB
    package zap
    
    import (
    	"time"
    )
    
    const (
    	defaultMaxBufferSize    = 1000
    	defaultMaxSyncQueueSize = 16
    	defaultFlushInterval    = 5 * time.Second
    )
    
    type config struct {
    	flushInterval    time.Duration
    	maxBufferSize    int
    	maxSyncQueueSize int
    }
    
    func newConfig(options []Option) *config {
    	cfg := new(config)
    	for _, option := range options {
    		option(cfg)
    	}
    
    	if cfg.flushInterval == 0 {
    		cfg.flushInterval = defaultFlushInterval
    	}
    
    	if cfg.maxBufferSize == 0 {
    		cfg.maxBufferSize = defaultMaxBufferSize
    	}
    
    	if cfg.maxSyncQueueSize == 0 {
    		cfg.maxSyncQueueSize = defaultMaxSyncQueueSize
    	}
    
    	return cfg
    }
    
    type Option func(config *config)
    
    // WithFlushInterval устанавливает значение для BufferedWriteSyncer.FlushInterval
    func WithFlushInterval(interval time.Duration) Option {
    	return func(config *config) {
    		config.flushInterval = interval
    	}
    }
    
    // WithMaxBufferSize устанавливает значение для BufferedWriteSyncer.MaxBufferSize
    func WithMaxBufferSize(size int) Option {
    	return func(config *config) {
    		config.maxBufferSize = size
    	}
    }
    
    // WithMaxSyncQueueSize устанавливает значение для BufferedWriteSyncer.MaxSyncQueueSize
    func WithMaxSyncQueueSize(size int) Option {
    	return func(config *config) {
    		config.maxSyncQueueSize = size
    	}
    }