jdk自带的日志,结构并不复杂,功能也能满足绝大部分功能。日志写入位置是开放的,只要继承了handler都可以接收日志的写入。handler本身依赖于LogRecord对象,该对象代表一个日志。Handler接收到日志对象后调用Logger绑定的Formater将日志格式化为指定格式。
然后将格式化的消息依次写入Handler中。日志对象的字段中有个Leval,是一个枚举,枚举中含有一个int类型值,这个值可以用来代表日志的等级。Logger也绑定一个Level,只有Logger的Level高于日志对象的Level时,日志才不会被拒绝。外部通过一个LoggerManager管理日志。来看看这复杂的类结构

demo如下:

public static void main(String[] args) throws IOException, DataFormatException {
Logger logger = LogManager.getLogManager().getLogger("global");
logger.info("test");
logger.log(Level.INFO, "info");
Handler handler = new Handler(){ @Override
public void publish(LogRecord record) {
System.out.println(record.getMessage()); } @Override
public void flush() { } @Override
public void close() throws SecurityException { } };
handler.setLevel(Level.INFO);
logger.addHandler(handler);
logger.config("我写入失败");
logger.info("我写入成功了");
Filter filter = new Filter(){
public boolean isLoggable(LogRecord record) {
return !record.getMessage().contains("不文明");
}
};
logger.setFilter(filter);
logger.info("不文明语言无法写入");
logger.info("文明语言可以写入"); }

运行结果:

八月 12, 2017 1:18:27 上午 demo.nio.CrcDemo main
INFO: test
八月 12, 2017 1:18:27 上午 demo.nio.CrcDemo main
INFO: info
八月 12, 2017 1:18:27 上午 demo.nio.CrcDemo main
INFO: 我写入成功了
八月 12, 2017 1:18:27 上午 demo.nio.CrcDemo main
INFO: 文明语言可以写入
我写入成功了
文明语言可以写入

java.util.logging jdk日志详解的更多相关文章

  1. java.util.logging.Logger使用详解 (转)

    http://lavasoft.blog.51cto.com/62575/184492/ ************************************************* java. ...

  2. java.util.logging.Logger 使用详解

    概述: 第1部分 创建Logger对象 第2部分 日志级别 第3部分 Handler 第4部分 Formatter 第5部分 自定义 第6部分 Logger的层次关系 参考 第1部分 创建Logger ...

  3. 2.java.util.logging.Logger使用详解

    一.java.util.logging.Logger简介 java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着, 其实 ...

  4. java.util.logging.Logger使用详解

    一.创建Logger对象   static Logger getLogger(String name)           为指定子系统查找或创建一个 logger. static Logger ge ...

  5. java.util.ResourceBundle国际化用法详解

    java.util.ResourceBundle国际化用法详解 初识国际化和ResourceBundle 这个类主要用来解决国际化和本地化问题.国际化和本地化可不是两个概念,两者都是一起出现的.可以说 ...

  6. 通配置文件的方式控制java.util.logging.Logger日志输出

    转自:http://zochen.iteye.com/blog/616151 简单的实现了下利用JDK中类java.util.logging.Logger来记录日志.主要在于仿照log4j方式用配置文 ...

  7. java.util.logging.Logger日志生成过程浅析 (转)

    http://www.tuicool.com/articles/vy6Zrye ****************************************** java.util.logging ...

  8. 【java】java自带的java.util.logging.Logger日志功能

    偶然翻阅到一篇文章,注意到Java自带的Logger日志功能,特地来细细的看一看,记录一下. 1.Java自带的日志功能,默认的配置 ①Logger的默认配置,位置在JRE安装目录下lib中的logg ...

  9. java.util.ConcurrentModificationException 异常问题详解

    环境:JDK 1.8.0_111 在Java开发过程中,使用iterator遍历集合的同时对集合进行修改就会出现java.util.ConcurrentModificationException异常, ...

随机推荐

  1. WEB学习笔记1-综述

    WEB前端基本技术:HTML.CSS.JavaScript 概念: 从职责上讲,Web前端开发要涉及网站开发的方方面面,从前端UI到和后端的数据交互都属于前端开发的范畴.Web前端开发是兼具艺术气息和 ...

  2. testDecoration

    def count(): fs = [] for i in range(1,4): def f(): n=i*i return n fs.append(f) return fs c1,c2,c3 = ...

  3. brand new start

    做了约两年半的安全,留下了约五十多篇笔记,从电脑搬过来,免的丢了

  4. github/gitee使用办法

    github/gitee只要添加SSH公钥都是可以连接上的 比如把某个文件上传gitee 首先肯定要有权限    否则会一直提醒failed伤心心 接下来说常用语句 git config --list ...

  5. 我发起并创立了一个 .Net 平台上的 Web 业务系统 基础库 开源项目 WebEasy

    我 强调一点, 程序员 应该对 程序 有 控制感 . 过多的 控制反转 使 程序员 丧失了 对 程序 的 控制感 . 过多的 依赖注入 束缚了 程序员 的 创造力 . 过度复杂的 架构设计 束缚了 程 ...

  6. Nginx源码结构及如何处理请求

    一.源码结构   1:下载安装包后,解压,可以看到目录结构,其中src目录下放的是源码       2:src源码目录下,可以看到这几个目录     mail:mail目录中存放了实现Nginx服务器 ...

  7. redis 双写一致性 看一篇成高手系列1

    首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作. 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存.又或者 ...

  8. sxstrace启动.bat

    @echo offset dd=%date:~8,2%set mm=%date:~5,2%set yy=%date:~0,4%set Tss=%TIME:~6,2%set Tmm=%TIME:~3,2 ...

  9. 【mybatis】之trim

    <trim prefix="where" prefixOverrides="where" suffixOverrides="and"& ...

  10. springJdbc(jdbcTemplate)事物拦截失效问题解决

    先贴上web.xml和spring-jdbc.xml代码: web.xml代码: <context-param> <param-name>contextConfigLocati ...