使用 ChatGPT 碰到的坑
最近在使用 ChatGPT 的时候碰到一个小坑,因为某些特殊情况我需要使用 syslog 向 logbeat 中发送日志。
由于这是一个比较古老的协议,确实也没接触过,所以就想着让 ChatGPT 帮我生成个例子。
原本我已经在 Go 中将这个流程跑通,所以其实只需要将代码转换为 Java 就可以了,这个我还是很信任 ChatGPT 的.
现在我挺多结构化数据的转换都交给了 ChatGPT,省去了不少小工具。
于是便有了这段对话:
看起来挺正常的,我拿过来改改确实也能用。
直到快上线的时候,我发现一些元信息丢失了,比如日志生产者的 hostname, PID 等,然而这个信息在 Go 却没有丢失。
于是我反复调试了之前生成的代码,依然没有找到问题。
没办法,就只有去翻翻 Go 源码,想看看最终发出去的数据长什么样子,最后看到这样几行代码:
这样一看就很清晰了,只是按照 <%d>%s %s %s[%d]: %s%s 的格式将生成的字符串通过网络发送出去。
既然这样 Java 代码也很好写了:
Socket socket = new Socket(hostname,port);
socket.setKeepAlive(true);
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os, true);
String format = String.format("<%d>%s %s %s[%d]: %s%s", 6 , rfc3164DateFormat.format(new Date()), "test", "test", 0, message, "\n");
pw.println(format);
经过测试数据终于对了。
之后我就在想这么简单的一个问题 Google 上不可能没有吧,于是直接搜索了 Java syslog 关键字,结果直接就有一个现成的库。
而且实现也是类似的。
我相信应该有不少朋友也有被 ChatGPT 一本正经的胡说八道误导过,至少在当前的环境下一些简单的东西我还是决定优先 Google。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341