Build constructs a logger from the Config and Options.
(opts ...Option)
| 237 | |
| 238 | // Build constructs a logger from the Config and Options. |
| 239 | func (cfg Config) Build(opts ...Option) (*Logger, error) { |
| 240 | enc, err := cfg.buildEncoder() |
| 241 | if err != nil { |
| 242 | return nil, err |
| 243 | } |
| 244 | |
| 245 | sink, errSink, err := cfg.openSinks() |
| 246 | if err != nil { |
| 247 | return nil, err |
| 248 | } |
| 249 | |
| 250 | if cfg.Level == (AtomicLevel{}) { |
| 251 | return nil, errors.New("missing Level") |
| 252 | } |
| 253 | |
| 254 | log := New( |
| 255 | zapcore.NewCore(enc, sink, cfg.Level), |
| 256 | cfg.buildOptions(errSink)..., |
| 257 | ) |
| 258 | if len(opts) > 0 { |
| 259 | log = log.WithOptions(opts...) |
| 260 | } |
| 261 | return log, nil |
| 262 | } |
| 263 | |
| 264 | func (cfg Config) buildOptions(errSink zapcore.WriteSyncer) []Option { |
| 265 | opts := []Option{ErrorOutput(errSink)} |