// New creates a syslog logger using the configuration passed in on // the context. Supported context configuration variables are // syslog-address, syslog-facility, syslog-format, syslog-tag. func New(ctx logger.Context) (logger.Logger, error) { tag, err := loggerutils.ParseLogTag(ctx, "{{.ID}}") if err != nil { return nil, err } proto, address, err := parseAddress(ctx.Config["syslog-address"]) if err != nil { return nil, err } facility, err := parseFacility(ctx.Config["syslog-facility"]) if err != nil { return nil, err } syslogFormatter, syslogFramer, err := parseLogFormat(ctx.Config["syslog-format"]) if err != nil { return nil, err } logTag := path.Base(os.Args[0]) + "/" + tag var log *syslog.Writer if proto == secureProto { tlsConfig, tlsErr := parseTLSConfig(ctx.Config) if tlsErr != nil { return nil, tlsErr } log, err = syslog.DialWithTLSConfig(proto, address, facility, logTag, tlsConfig) } else { log, err = syslog.Dial(proto, address, facility, logTag) } if err != nil { return nil, err } log.SetFormatter(syslogFormatter) log.SetFramer(syslogFramer) return &syslogger{ writer: log, }, nil }
// New creates a syslog logger using the configuration passed in on // the context. Supported context configuration variables are // syslog-address, syslog-facility, syslog-format. func New(info logger.Info) (logger.Logger, error) { tag, err := loggerutils.ParseLogTag(info, loggerutils.DefaultTemplate) if err != nil { return nil, err } proto, address, err := parseAddress(info.Config["syslog-address"]) if err != nil { return nil, err } facility, err := parseFacility(info.Config["syslog-facility"]) if err != nil { return nil, err } syslogFormatter, syslogFramer, err := parseLogFormat(info.Config["syslog-format"], proto) if err != nil { return nil, err } var log *syslog.Writer if proto == secureProto { tlsConfig, tlsErr := parseTLSConfig(info.Config) if tlsErr != nil { return nil, tlsErr } log, err = syslog.DialWithTLSConfig(proto, address, facility, tag, tlsConfig) } else { log, err = syslog.Dial(proto, address, facility, tag) } if err != nil { return nil, err } log.SetFormatter(syslogFormatter) log.SetFramer(syslogFramer) return &syslogger{ writer: log, }, nil }