in internal/output/lumberjack/lumberjack.go [95:118]
func splitAddress(addr string) (scheme, host, port string, err error) {
// Use tcp:// scheme by default if not specified.
if !strings.Contains(addr, "://") {
addr = "tcp://" + addr
}
url, err := url.Parse(addr)
if err != nil {
return "", "", "", fmt.Errorf("invalid address: %w", err)
}
// Require an explicit port in addresses.
if url.Port() == "" {
return "", "", "", errors.New("port number is required")
}
switch url.Scheme {
case "tcp", "tls":
default:
return "", "", "", fmt.Errorf("invalid scheme %q (use tcp or tls)", url.Scheme)
}
return url.Scheme, url.Hostname(), url.Port(), nil
}