diff --git a/pkg/log/zap/buffered_write_syncer.go b/pkg/log/zap/buffered_write_syncer.go
index 09e6051f012b7e6c635feb77c3f0f6dd5750faa6..7ded0afaa8d8e1438a12da272f5c9757dccca175 100644
--- a/pkg/log/zap/buffered_write_syncer.go
+++ b/pkg/log/zap/buffered_write_syncer.go
@@ -9,6 +9,12 @@ import (
 	"git.perx.ru/perxis/perxis-go/pkg/log"
 )
 
+const (
+	defaultMaxBufferSize    = 1000
+	defaultMaxSyncQueueSize = 16
+	defaultFlushInterval    = 5 * time.Second
+)
+
 var SyncQueueOverflow = errors.New("sync queue overflow")
 
 // BufferedWriteSyncer это WriteSyncer, который отправляет записи в log.Service.
@@ -44,17 +50,23 @@ type BufferedWriteSyncer struct {
 	stopped   bool          // stopped указывает, был ли выполнен Stop
 }
 
-func NewBufferedWriteSyncer(service log.Service, options ...Option) *BufferedWriteSyncer {
-	cfg := newConfig(options)
-	return &BufferedWriteSyncer{
-		FlushInterval:    cfg.flushInterval,
-		MaxBufferSize:    cfg.maxBufferSize,
-		MaxSyncQueueSize: cfg.maxSyncQueueSize,
-		Service:          service,
+func (ws *BufferedWriteSyncer) start() {
+	if ws.Service == nil {
+		panic("service is required")
+	}
+
+	if ws.FlushInterval == 0 {
+		ws.FlushInterval = defaultFlushInterval
+	}
+
+	if ws.MaxBufferSize == 0 {
+		ws.MaxBufferSize = defaultMaxBufferSize
+	}
+
+	if ws.MaxSyncQueueSize == 0 {
+		ws.MaxSyncQueueSize = defaultMaxSyncQueueSize
 	}
-}
 
-func (ws *BufferedWriteSyncer) start() {
 	ws.buffer = make([]*log.Entry, 0, ws.MaxBufferSize)
 	ws.syncQueue = make(chan []*log.Entry, ws.MaxSyncQueueSize)
 	ws.flushStop = make(chan struct{})
diff --git a/pkg/log/zap/buffered_write_syncer_test.go b/pkg/log/zap/buffered_write_syncer_test.go
index bbb27b6cd4f46b097a666b5791764cb6306d979f..8ed6e583cf4097d3894b9607c543cea2983a2a70 100644
--- a/pkg/log/zap/buffered_write_syncer_test.go
+++ b/pkg/log/zap/buffered_write_syncer_test.go
@@ -22,7 +22,7 @@ func TestBufferedWriteSyncer_Write(t *testing.T) {
 		}).
 		Once()
 
-	ws := NewBufferedWriteSyncer(service)
+	ws := &BufferedWriteSyncer{Service: service}
 
 	err := ws.Write(&log.Entry{Message: "first log message"})
 	require.NoError(t, err)
@@ -46,7 +46,7 @@ func TestBufferedWriteSyncer_Write_Concurrent(t *testing.T) {
 		}).
 		Once()
 
-	ws := NewBufferedWriteSyncer(service)
+	ws := &BufferedWriteSyncer{Service: service}
 
 	var wg sync.WaitGroup
 	for i := 0; i < 100; i++ {
@@ -77,7 +77,7 @@ func TestBufferedWriteSyncer_Flush(t *testing.T) {
 		}).
 		Times(10)
 
-	ws := NewBufferedWriteSyncer(service)
+	ws := &BufferedWriteSyncer{Service: service}
 
 	for i := 0; i < 10; i++ {
 		for j := 0; j < 10; j++ {
@@ -104,7 +104,7 @@ func TestBufferedWriteSyncer_MaxBufferSize(t *testing.T) {
 		}).
 		Times(10)
 
-	ws := NewBufferedWriteSyncer(service, WithMaxBufferSize(10))
+	ws := &BufferedWriteSyncer{Service: service, MaxBufferSize: 10}
 
 	for i := 0; i < 100; i++ {
 		err := ws.Write(&log.Entry{Message: "log message"})
@@ -127,7 +127,7 @@ func TestBufferedWriteSyncer_FlushInterval(t *testing.T) {
 		}).
 		Once()
 
-	ws := NewBufferedWriteSyncer(service, WithFlushInterval(time.Second))
+	ws := &BufferedWriteSyncer{Service: service, FlushInterval: time.Second}
 
 	for j := 0; j < 10; j++ {
 		err := ws.Write(&log.Entry{Message: "log message"})
diff --git a/pkg/log/zap/config.go b/pkg/log/zap/config.go
deleted file mode 100644
index d586d1207f18aa75c5c3afa10a3d63086371efe0..0000000000000000000000000000000000000000
--- a/pkg/log/zap/config.go
+++ /dev/null
@@ -1,61 +0,0 @@
-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
-	}
-}
diff --git a/pkg/log/zap/zap_test.go b/pkg/log/zap/zap_test.go
index c8a4dff9c09fe521e0f76fe35a99d909b1f172e8..d3ba8fbcf91d0acb8ed29a287b7fcc19c14bcced 100644
--- a/pkg/log/zap/zap_test.go
+++ b/pkg/log/zap/zap_test.go
@@ -52,7 +52,7 @@ func TestExample(t *testing.T) {
 		}).
 		Once()
 
-	ws := NewBufferedWriteSyncer(service)
+	ws := &BufferedWriteSyncer{Service: service}
 	logger := zap.New(NewCore(ws))
 
 	logger.Info("создан элемент коллекции",