java核心技术10阅读(六)-日志记录案例

日志说明书常见操作

  1. 选择一个日志记录器,并把日志记录器命名为与主应用程 序包一样的名字,例如,com.mycompany.myprog。
    private static final Logger logger = Logger.getLogger(“com.mycompany.nyprog”);
    static 防止任何变量引用的日志记录器可能会被垃圾回收
  2. 默认的日志配置将级别等于或高于 INFO级别的所有消息记录到控制台。
  3. 因此,需要进行一定的配置,主要是添加FileHandler日志处理器,配置如下:
    所有级别为 INFO、WARNING 和SEVERE 的消息都将显示到控制台上o 因此,最好只将对程序用户有意义的消息设置为这几 个级别。将程序员想要的日志记录,设定为FINE 是一个很好的选择。
if (System,getProperty("java,util.logging.config.dass") == null  && System.getPropertyC'java.util.logging.config.file") == null)
{ //确定当前的系统属性。
try {
Logger.getLogger("").setLevel (Level.ALL); //创建或获取记录器,并且记录所有级别
Handler handler = new FileHandler('Wmyapp.log", 0, L0G_R0TATI0N_C0UNT)://FileHandler可以收集文件中的记录,在指定目录生成log文件
final int L0C
_R0TATI0N_C0UNT = 10;
Logger.getLogger("").addHandler(handler)://加入处理器
}
catch (IOException e) 
{
logger.log(Level.SEVERE, "Can't create log file handler", e); //记录捕获异常
} 
}

日志记录实例

EventQueue.invokeLater的作用:
Java中Swing是线程不安全的,是单线程的设计,这样的造成结果就是:只能从事件派发线程访问将要在屏幕上绘制的Swing组件。
SwingUtilities类提供了两个方法:invokeLate和invoteAndWait,它们都使事件派发线程上的可运行对象排队。当可运行对象排在事件派发队列的队首时,就调用其run方法。其效果是允许事件派发线程调用另一个线程中的任意一个代码块。

可以通过扩展 Handler 类或 StreamHandler 类自定义处理器,用于在窗口显示日志。
在这里插入图片描述

发布了15 篇原创文章 · 获赞 1 · 访问量 130

猜你喜欢

转载自blog.csdn.net/qq_17236715/article/details/104918243