0

我尝试将 TinyLog 用于示例应用程序,以确保了解它的工作原理,以便我可以将它用于我的工作应用程序。

但是,在使用时我得到一个异常来输入 Writer(编译时错误)。如果我对它进行类型转换,它会引发运行时错误,如下所示。

代码 :

import java.io.FileWriter;
import java.io.IOException;

import org.pmw.tinylog.Configurator;
import org.pmw.tinylog.Logger;
import org.pmw.tinylog.writers.ConsoleWriter;
import org.pmw.tinylog.writers.Writer;

public class TestClass {
    public static void main(String[] args) throws IOException {
        Configurator.defaultConfig().writer(new ConsoleWriter()).addWriter((Writer) new FileWriter("data.txt")).activate();
        Logger.info("welcome to tinylog logger.....");
    }
}

错误 :-

线程“主”java.lang.ClassCastException 中的异常:java.io.FileWriter 无法在 TestClass.main(TestClass.java:12) 中转换为 org.pmw.tinylog.writers.Writer

请帮助我们 :)。

4

1 回答 1

1

您可以轻松修复它。只需导入org.pmw.tinylog.writers.FileWriter而不是java.io.FileWriter. 该类java.io.FileWriter是JVM的文件编写器,但是您需要tinylog的文件编写器。

之后,您可以删除类强制转换“ (Writer)”作为 org.pmw.tinylog.writers.FileWriter接口的实现org.pmw.tinylog.writers.Writer。但是该类java.io.FileWriter不实现接口org.pmw.tinylog.writers.Writer。因此已抛出报告的 ClassCastException。

import org.pmw.tinylog.Configurator;
import org.pmw.tinylog.Logger;
import org.pmw.tinylog.writers.ConsoleWriter;
import org.pmw.tinylog.writers.FileWriter;

public class TestClass {
    public static void main(String[] args) {
        Configurator.defaultConfig().writer(new ConsoleWriter()).addWriter(new FileWriter("data.txt")).activate();
        Logger.info("welcome to tinylog logger.....");
    }
}
于 2018-08-21T06:49:03.307 回答