【问题标题】:Java - Is there a Sink in JavaJava - Java中是否有接收器
【发布时间】:2016-11-10 07:41:17
【问题描述】:

这是我在编写简单的自定义 Log4j 实现 (Java) 时想到的一个问题。

我想制作一个自定义的 Log4j Appender,这是通过扩展 AppenderSkeleton 类来完成的。我选择将日志消息写入列表(基本上 append 方法会将消息添加到列表)。我也想要一个关闭选项。由于这是一个简单的实现,我认为 close 方法可以将 List 引用替换为 Sink / Null Reference,这样所有的消息就这样丢失了。

然后我想到了这个问题。真的有一个Sink可以在Java中使用吗?

我期待的是相当于 Linux 中的 /dev/null,但在应用程序编程级别。

【问题讨论】:

  • 还有一种方法可以从 Java (主要是 Windows 和 Linux) 引用操作系统中的等效 /dev/null
  • 只需要几行代码就可以编写OutputStream 的子类,它会忽略您编写的所有内容。标准库中没有这样的东西。
  • @Balu 如果您只想丢弃列表,请执行此操作(将列表字段设置为空)。为什么要浪费时间把它写到无处?
  • @Henry Apache Commons IO 有一个 NullWriter 和一个 NullOutputStream。但是,是的,编写自己的代码很容易。
  • @Andreas 将列表设置为 null 将引发 NullPointerException。然而 NullWriter / NullOutputStream 运作良好。这也给了我一个实现自定义输出流或编写器的想法。谢谢

标签: java null


【解决方案1】:

@Henry Apache Commons IO 有一个 NullWriter 和一个 NullOutputStream。但是,是的,编写自己的代码很容易。 ——安德烈亚斯

【讨论】:

    猜你喜欢
    • 2016-12-09
    • 2010-12-11
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    相关资源
    最近更新 更多