发布于2022-06-19 23:49 阅读(1177) 评论(0) 点赞(23) 收藏(2)
java.util.logging.XMLFormatter 中有一个名为 getTail() 的方法,它写入物理日志文件的最后一行。它只是写
</log>
自己在一条线上。
有谁知道如何/何时调用 getTail() ?我从来没有在我自己的代码中调用过它,而且它总是写最后一行。现在,突然,它不是。我显然已经弄坏了一些东西,但如果我能想到我做了什么或如何解决这个问题,我会很生气。我的日志文件已写入,但我无法打开它。一个看起来像锁的伴随文件可以确保这一点。(如果日志文件名为 Fuzz.log.xml,则另一个文件将称为 Fuzz.log.xml.lck,其文件大小为 0。如果我删除该文件,我可以再次编辑我的日志文件,除了它缺少最终的日志标签。)我只想让日志记录代码再次为我编写该标签,以便我可以在不删除锁定文件并手动添加磁贴的情况下打开日志。
我可以做些什么愚蠢的事情来阻止 getTail() 工作?
通常我希望 JDK Logging Framework 负责流处理。如果您查看调用“getTail()”的位置,您会发现它是作为 StreamHandler.flushAndClose() 的一部分调用的,这主要是从 StreamHandler.close() 调用的。
因此,只要日志功能的流正确关闭,即应用程序正常终止时,就会写入尾部。如果应用程序崩溃或被杀死,它可能没有机会正确关闭文件。
查看这些东西的最佳方法可能是使用 Eclipse 并确保 JDK Source 在“Java -> Installed JREs”下的 Preferences 中可用,然后您可以使用所有 Eclipse 浏览功能来查看连接的位置。
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/457443/5f9f7e3e46c87927022a/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!