gpt4 book ai didi

go - 如何获取Go Flag包以接受--telemetry.addr形式的标志名称

转载 作者:行者123 更新时间:2023-12-01 22:33:54 32 4
gpt4 key购买 nike

我需要编写一段代码,其中包含参数“--telemetry.addr = 8080”和“--telemetry.path = / metrics”,它们的格式特别如此。

我的代码:

package main

import (
"flag"
"fmt"
"net/http"
"os"

"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/common/log"
)

var portNumber = flag.String("-telementry.addr", "8080", "a string denoting what port number the data should be accessible at.")
var endpoint = flag.String("-telemetry.path", "/metrics", "a string denoting what endpoint the data should be accessible at.")

func main() {
log.Info(os.Args[1])
log.Info(os.Args[2])
flag.Parse()

http.Handle("/"+*endpoint, promhttp.Handler())
log.Info("Endpoint set to " + *endpoint)
log.Info("Beginning to serve on port :" + *portNumber)

fmt.Printf("Test %s %s", *endpoint, *portNumber)

log.Fatal(http.ListenAndServe(":"+*portNumber, nil))
}

给我输出:
JORDYT-MBP:array-exporter jordy$ go run array-exporter.go --telemetry.addr=8080 --telemetry.path=/metrics
INFO[0000] --telemetry.addr=8080 source="array-exporter.go:17"
INFO[0000] --telemetry.path=/metrics source="array-exporter.go:18"
flag provided but not defined: -telemetry.addr
Usage of /var/folders/mv/466rq_qj7zj9ywd11w4t8wc00000gp/T/go-build765060090/b001/exe/array-exporter:
--telementry.addr string
a string denoting what port number the data should be accessible at. (default "8080")
--telemetry.path string
a string denoting what endpoint the data should be accessible at. (default "/metrics")
exit status 2

无论我对flag.String行做什么,我似乎都无法欺骗它接受以“-”开头的内容

最佳答案

标志参数不接受“-”。您应该做的是从标志调用中删除连字符

var portNumber = flag.String("telemetry.addr", "8080", "a string denoting what port number the data should be accessible at.")
var endpoint = flag.String("telemetry.path", "/metrics", "a string denoting what endpoint the data should be accessible at.")

您可以通过添加双连字符来执行二进制文件,如下所示
go build --telemenary.addr=8080 --telemetry.path=metrics

关于go - 如何获取Go Flag包以接受--telemetry.addr形式的标志名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62440469/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com