Java的流读一行丢一行_java – 在少数特定情况下记录丢失的消息
我正在使用
java.util.logging來完成我的應用程序的所有日志記錄.
直到最近,我在沒有任何特定配置的情況下使用日志工具.一切都按預期工作,所有日志都在控制臺中可見(stderr)
現在,我想自定義日志的配置.我希望日志顯示在控制臺上,但我希望它們也可以寫在文件中.我提出了以下解決方案:
public static void main(String[] args) {
System.setProperty("java.util.logging.config.file","log.config");
Logger defLogger = Logger.getLogger("fr.def"); // all loggers I use begin by "fr.def"
defLogger.setLevel(Level.ALL);
defLogger.addHandler(new ConsoleHandler());
defLogger.addHandler(new FileHandler());
// real code here ...
以下是log.config文件的內容:
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.count=10
java.util.logging.FileHandler.pattern=logs/visiodef2.%g.log
這個解決方案大部分都有效:我可以在控制臺和文件中看到日志.除此之外,在某些情況下,一些日志消息只是丟失(對于控制臺和文件).日志丟失的情況示例:
>在JVM的關閉掛鉤上
>在默認的未捕獲異常處理程序上
>在EDT的異常處理程序上
>在主JFrame的windowClosing事件上(使用默認關閉操作EXIT_ON_CLOSE配置)
除了上面描述的之外,沒有其他配置.不涉及日志級別:我可以看到一些INFO日志,但有些丟失的日志是嚴重的.
我還嘗試添加一個關閉鉤子來刷新所有處理程序,但沒有成功.
所以,問題是:按照我的方式配置日志記錄是否安全?你能看出為什么有些日志會丟失的原因嗎?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Java的流读一行丢一行_java – 在少数特定情况下记录丢失的消息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 党彩会名字的寓意和象征
- 下一篇: 全家福姓氏珠宝是姓氏文化在珠宝领域的独特