问题描述
我用 Java 编写了一个控制台应用程序,它使用 Google Protocol Buffers 进行序列化。 但是,当使用该代码时,在库加载期间,它会输出一些关于非法反射访问操作的警告。
AFAIK,这是 Google 的一些小烦恼,不会真正影响任何事情,所以我希望我的应用程序不要将垃圾转储到输出。 同时,我显然希望我的应用能够正常输出自己的东西。
人们通常如何处理这样的事情? 处理这种具体情况的好方法是什么?
解决方法
最好的方法是添加一个记录器而不是使用标准的控制台输出。您可以阅读有关 slf4j 的信息。它比标准输出有很多优点。您可以拥有不同级别的日志——信息、调试、警告、错误等。因此您可以限制您阅读的信息量。此外,您将在文件中保留以前的输出,并且您还可以配置不同的 appender - 因此不同的类将它们的输出写入不同的文件。
基本上这是大多数java应用程序的首选方式,这是有原因的