java - 为什么 jExcelAPI 在 stderr 中转储警告以及如何停止这种行为?

标签 java logging stderr jexcelapi

在尝试使用 jExcelAPI 读取 xls 文件时,我发现该库在 stderr 中转储了大量信息,有时这些信息不相关。例如,此代码片段会导致大量“警告”转储到 stderr 流上:

    Workbook workbook = Workbook.getWorkbook(new File(flname));


    //For each sheet in the workbook
    for (int currentSheet = 0; currentSheet < workbook.getNumberOfSheets(); currentSheet++)
    {
        Sheet sheet = workbook.getSheet(currentSheet);
        System.out.println("Currently processing " + sheet.getName());
    }

警告如下:

Currently processing frst sheet
Warning:  Cell C33680 already contains data
Warning:  Cell D33680 already contains data
Warning:  Cell E33680 already contains data
Warning:  Cell F33680 already contains data
Warning:  Cell B33680 already contains data
Currently processing Lst Sheet

如何避免库转储所有这些不需要的数据?另外,我不明白为什么代码甚至会查看工作表的所有单元格,而我要求它做的只是列出工作表的名称(我知道 Workbook.getSheetNames() 可以执行类似的任务 - 但说我想打印工作表的名称和工作表中单个单元格的内容)。

我是否错误地使用了该库?

最佳答案

我从未使用过这个库,但是快速查看 Logger.initializeLogger()看起来默认情况下它会尝试使用 Log4J 进行记录。你的 CLASSPATH 中有 Log4J 吗?您还可以使用SLF4J bridge .

当您成功地将 JExcelAPI 重定向到日志记录框架时,您可以配置转储哪些消息(以及转储位置)。

关于java - 为什么 jExcelAPI 在 stderr 中转储警告以及如何停止这种行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860834/

相关文章:

python - 使用 mingw 捕获 distutils 的错误输出

java - 如何使用嵌入式数据库填充 JTable?

java - Log4j 未从资源文件夹中获取 log4j.properties 文件

java - 自定义日志级别会破坏级别突出显示

windows-7 - "couldn' t 在运行 Cygwin 命令时使标准错误与标准输出不同”

node.js - 使用ffmpeg区分错误和标准终端日志 - nodejs

java - 监听 Cassandra Datastore 的变化?

java - Hiveserver2 Java API

java - 未知协议(protocol) : c (JDOM a SAXBuilder)

c# - 使用 Serilog 在 WebAPI 2 中记录重要信息