我正在使用

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日志,但有些丢失的日志是严重的.

我还尝试添加一个关闭钩子来刷新所有处理程序,但没有成功.

所以,问题是:按照我的方式配置日志记录是否安全?你能看出为什么有些日志会丢失的原因吗?

Java的流读一行丢一行_java – 在少数特定情况下记录丢失的消息相关推荐

  1. java字符流和字节流的区别_java字符流与字节流的区别是什么

    java中字符流与字节流的区别: 1.字节流操作的基本单元为字节:字符流操作的基本单元为Unicode码元. 2.字节流默认不使用缓冲区:字符流使用缓冲区. 3.字节流通常用于处理二进制数据,实际上它 ...

  2. java模拟浏览器不关闭会话_JSP实现浏览器关闭cookies情况下的会话管理

    通常,会话管理是通过服务器将 Session ID 作为一个 cookie 存储在用户的 Web 浏览器中来唯一标识每个用户会话.如果浏览器不支持 cookies,或者将浏览器设置为不接受 cooki ...

  3. Java中如何在窗口加一行字,如何在java中实现读文件(一行一行地读)和写文件(一行一行地追加写)...

    BufferedReader.readline(); BufferedWriter.write(); BufferedWriter.newLine(); 写: FileWriter   fw=new ...

  4. java多线程流式写入文件夹_java多线程写入同一文件

    1.[代码][Java]代码 package com.thread; import java.io.File; import java.io.FileNotFoundException; import ...

  5. java的流传输的进度条_JAVA程序设计(17)----- 制作文件拷贝软件 进程 输入流输出流 NIO 进度条 底层拷贝 多线程...

    使用NIO对文件进行底层拷贝(按照字节)多线程技术初级应用 不阻塞程序运行 package com.lovo.homework01; import java.awt.event.ActionEvent ...

  6. java扫描文件夹所有的文件_java 扫描文件夹所有下文件

    import java.io.File; /** * *自动扫描文件夹下的文件 *用途:自动扫描脚本输入路径,输出要执行的sql导入数据库: */ public class OutSql { /** ...

  7. Java前后端分离第三方登录_网站前后端分离情况下如何实现QQ微信等第三方登陆-Fun言...

    前言 最近在弄第三方登录,实现起来很简单,就是调几个接口获取个人信息即可,详细了解:maven项目整合QQauth2.0第三方登录详细说明,然后因为本网站是前后端分离的,所以不能再回调接口那里直接跳转 ...

  8. Java的长整型Long/long后面的数字什么情况下必须加L?

    [1] 问题的由来   在日常开发中,实体类需要序列化,一般写法如下: public class User implements java.io.Serializable {private stati ...

  9. java启动无线网络连接_在无线模式存在的情况下,如何连接无线网络

    我使用下面的代码在android手机上创建一个无线模式.出于某种原因它每次都会创建一个新模式,因此对于相同的无线网络手机将会有多个模式.是否有办法能实现当一个模式已经存在时,就不要再创建一个新的模式? ...

最新文章

  1. 深度学习如何提高训练集准确率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率...
  2. OpenSolaris北京用户组的第一次活动
  3. c++ 多核cpu序列号_详解CPU几个重点基础知识
  4. [Asp.Net Core] Blazor Server Side 项目实践 - 切换页面时保留状态
  5. python文字识别 训练_Python3.x:pytesseract识别率提高(样本训练)
  6. 利用java反射原理写了一个简单赋值和取值通用类【改】
  7. 计算机名汉字 oracle,修改计算机名对ORACLE的影像
  8. MAC编译freetype
  9. sql server2008 如何获取上月、上周、昨天、今天、本周、本月的查询周期(通过存储过程)...
  10. html标签asp/,HTML标签及ASP函数速查表
  11. STC学习:光敏计数
  12. 程序猿应该拥有的浏览器
  13. python写入文件
  14. 读《IPD华为研发之道》笔记
  15. Embedding Projector
  16. 清华大学计算机系黄子懿,清华大学2014年自主招生名单:(北京市)(一)
  17. IPv6安装及使用手册
  18. 抛物线公式即辛卜生(Simpson)公式的数值积分的Python程序
  19. HTML5在vivo手机适配问题
  20. 小白学Linux笔记(一)——安装虚拟机和Ubuntu

热门文章

  1. SpringBatch处理适配器ItemProcessorAdapter详解
  2. go gin框架:Any响应任何请求类型
  3. sealos安装k8s集群注意事项:必须关闭任何形式的http_proxy代理
  4. Jenkins添加从节点相关配置
  5. JVM调优:指定垃圾回收器组合
  6. Hadoop hdfs 使用流来下载文件数据代码示例
  7. synchronized的可重入怎么实现的
  8. can bus 中spn是什么_CP AUTOSAR功能栈简介NM网络管理(Can)
  9. ftp linux 开启验证_在linux中开启ftp服务
  10. Qt C++模版函数示例