这是CodenameOne中Log类中的错误吗?

这是CodenameOne中Log类中的错误吗?,codenameone,Codenameone,我一直在尝试使用log类使用本地存储捕获一些奇怪的特定于设备的故障。当我进入Log类并跟踪代码时,我注意到了一个bug 当我调用p(String)方法时,它调用getWriter()来获取Writer的“output”实例。它会注意到输出为null,因此调用createWriter()创建它。由于我尚未设置文件URL,因此将执行以下代码: if(getFileURL() == null) { return new OutputStreamWriter(Storage.getInstanc

我一直在尝试使用log类使用本地存储捕获一些奇怪的特定于设备的故障。当我进入Log类并跟踪代码时,我注意到了一个bug

当我调用p(String)方法时,它调用getWriter()来获取Writer的“output”实例。它会注意到输出为null,因此调用createWriter()创建它。由于我尚未设置文件URL,因此将执行以下代码:

if(getFileURL() == null) {
    return new OutputStreamWriter(Storage.getInstance().createOutputStream("CN1Log__$"));
}
在模拟器上,我注意到这个文件被创建并包含日志信息

因此,在我的应用程序中,我希望在检测到错误后显示日志(以进行调试)。我调用getLogContent()将其作为字符串检索,但它会执行一些奇怪的操作:

if(instance.isFileWriteEnabled()) {
    if(instance.getFileURL() == null) {
        instance.setFileURL("file:///" + FileSystemStorage.getInstance().getRoots()[0] + "/codenameOne.log");
    }
    Reader r = new InputStreamReader(FileSystemStorage.getInstance().openInputStream(instance.getFileURL()));
我看到的主要问题是,它使用的文件URL与默认编写器位置不同。由于编写器的创建没有设置文件URL,因此getLogContent方法将永远看不到记录的数据。(我遇到的另一个问题是样式问题,即获取内容的方法不应该为实例持续设置该内容的位置,但这是另一个问题)

作为一种解决方法,我认为我可以在应用程序的开头调用“getLogContent()”,该应用程序应该在稍后从中检索文件的位置正确设置文件url。我下一步会测试它

同时,这是一个Bug,还是我从用户角度看不懂的功能?

更像是“未实现的功能”。这个特定的API可以追溯到LWUIT

该方法的主要问题是,我们目前正在写入日志文件,并获取其内容,我们目前可能在写入中间可能是一个问题,实际上可能会导致失败。因此,这种方法大多被放弃,转而采用更为强健的碰撞保护方法。

它更像是“未实现的功能”。这个特定的API可以追溯到LWUIT

该方法的主要问题是,我们目前正在写入日志文件,并获取其内容,我们目前可能在写入中间可能是一个问题,实际上可能会导致失败。因此,这种方法大多被放弃,转而采用更为稳健的碰撞保护方法