代码之家  ›  专栏  ›  技术社区  ›  Thypari

检查日志记录是否启用的最干净的方法是什么?

  •  0
  • Thypari  · 技术社区  · 6 年前

    我正在实现一个软件,用户可以在开始任务之前决定是否要为此任务创建日志文件。

    • 如果启用了日志记录,则会创建csv写入程序
    • 代码中有几行代码使用csv编写器写入日志
    • csv写入程序已释放

    现在有三种方法可以检查是否启用了日志记录,我不喜欢其中任何一种:

    1. 每次创建或访问csv writer时,都会在其之前进行“if(isLogging)”检查(大量调用)
    2. 创建csv编写器接口并调用该接口。创建另一个EmptyCsvWriter,它实现接口并具有空方法,并在isLogging为false时初始化此方法(创建“假”null对象似乎是错误的)
    3. 创建csv编写器并传递isLogging。检查csv writer内部是否在每个方法调用上启用了isLogging(为什么要首先创建csv writer对象-似乎也错了)
    1 回复  |  直到 6 年前
        1
  •  2
  •   JB Nizet    6 年前

    但是,如果您需要计算csv编写器获取的输入,则效率不如第一个:如果编写器丢弃输出,您将免费生成输出。另一方面,额外的好处是,即使使用noop编写器,您也可以在这个生成输入的代码中检测到错误。