【问题标题】:Why in jenkins extensions points, does the ConsoleLogFilter uses OutputStream and not String?为什么在詹金斯扩展点中,ConsoleLogFilter 使用的是 OutputStream 而不是 String?
【发布时间】:2016-09-19 06:49:37
【问题描述】:

我想创建一个插件,在将某些字符串写入控制台日志之前隐藏它们。根据我的阅读,ConsoleLogFilter 是完美的扩展点。

从 ConsoleLogFilter 的描述中可以看出:'允许过滤写入控制台日志的信息的挂钩'

但是,唯一可以覆盖的方法是 'decorateLogger',它是 OutputStream 的输入变量,这意味着,我无法读取流并根据流过滤我想要的东西。

我错过了什么吗?

扎克

【问题讨论】:

    标签: java jenkins plugins


    【解决方案1】:

    这个想法是您覆盖decorateLogger 方法并返回一个执行过滤的OutputStream。这称为The Decorator Pattern。 JDK 提供了一个FilterOutputStream 类,可以用来实现这样的过滤器。

    看看Mask Passwords Plugin,它实现了密码过滤器:MaskPasswordsBuildWrapper.java

    【讨论】:

    • 似乎 LineTransformationOutputStream 类就是答案。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2023-03-23
    • 2018-10-29
    • 2017-07-13
    • 2014-12-13
    相关资源
    最近更新 更多