使用TinyLog时出现Writer错误

时间:2018-08-20 07:48:51

标签: tinylog

我尝试将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无法转换为org.pmw.tinylog.writers.Writer     在TestClass.main(TestClass.java:12)

请帮助我们:)。

1 个答案:

答案 0 :(得分:0)

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

然后,您可以删除强制转换为(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.....");
    }
}