我问了一下gpt4,以下是gpt4的回复,从你的描述看,这个问题可能并不是一个 bug,而是因为
log.Println()
和fmt.Println()
对待参数的方式有所不同。
log.Println()
函数会为每个参数调用fmt.Sprint()
来生成输出的字符串。在你的第一个例子中,你传递给log.Println()
的是一个字节切片(startInfo.Bytes()
),fmt.Sprint()
会将这个字节切片转换为一个字符串,其中每个字节都被转换为其对应的十进制数值,这就是为什么你看到一串数字的原因。在你的第二个例子中,你传递给
log.Println()
的是一个字符串(startInfo.String()
)。这个字符串应该能正常打印出来,但是你说结果卡住了。这可能是因为你的环境或者终端有些问题,或者是因为register.ListenAddr
中包含了一些非打印字符,导致在终端上看起来像是卡住了。你提到你已经设置了
log.SetOutput(file)
,并且在文件中的记录是正常的,这说明log.Println()
是正常工作的。你可以尝试在不同的终端或者环境下运行你的程序,看看是否还会出现同样的问题。如果使用
fmt.Println()
没有问题,那么在这种情况下,你可以继续使用fmt.Println()
来打印日志。如果你需要的是将日志写入文件,那么你可能需要使用log
包,因为fmt
包并没有提供设置输出的功能。另外,你也可以尝试一下
log.Printf()
函数,这个函数允许你指定一个格式字符串,可以更精确地控制输出的格式。例如:log.Printf("[%s] Starting server at -> %s ;Listening...\n", register.Name, register.ListenAddr)
这样,你就不需要使用
bytes.Buffer
来手动构建字符串了。
@雨伤,你服务器真多
@上善若水,实际上bing也算错了
@TabKey9,这个项目是作者二开过的,原版没有这些功能
@晨梦,这些人工智能都是语言模型,数学可能不太擅长
@TabKey9,改成随机图片接口了 感觉更好看
ipv6地址不限量吗
@TabKey9,这个我不知道是在哪里复制的,你搜一下哪咤探针主题应该能搜到,或者我明天发出来
@希望自己长胖胖,反正这个系统我不熟,用谁都是一样的,我看楼主的硬盘也是8g啊。
@烟雨,我注册的新加坡什么叫很难过两月
应该是在玩梗 没有备案的域名 没备案的可以吗
@雨伤,我先不刷了,怕封号 aws目前还够用
@雨伤,我挂了一天已经两千多次了,也没抢到
@雨伤,你有脚本吗 挂脚本会封号吗
@烟雨,有啥规律吗
@PIUIFU,我注册的新加坡的amd也开不了 我想要arm 先注册了亚马逊免费一年的先用用
@加勒比海带,好像是api一直刷 刷到了就开