zoukankan      html  css  js  c++  java
  • 细说JDK日志组件

    1. 概述

    JDK自带的日志组件在包java.util.logging下,如图:


    2. 架构

    如上图所示,JDK日志组件核心元素包括:Logger,Handler,Filter和Formatter,他们的关系如下:
        --Logger
          --Handler
            --Filter
            --Formatter

    Handler类图:

    JDK日志组件提供Handler比较少,支持将日志输出到控制台,文件,网络。


    Formatter类图:

    JDK日志组件仅提供了2种日志格式,默认为xml格式。

    3. 通过API使用JDK日志组件

    // 通过API使用JDK日志组件
    private static void log2FileByAPI() throws SecurityException, IOException {
        // 将日志记录到文件中
        FileHandler fileHandler = new FileHandler("D:/logs/java_util_log.log", true);
        Formatter formatter = new SimpleFormatter();
        fileHandler.setFormatter(formatter);
            
        logger.addHandler(fileHandler);    
        logger.info("LOG By API");
    }


    4. 通过配置文件使用JDK日志组件

    // 通过配置文件使用JDK日志组件
    private static void log2FileByConfig() throws SecurityException, IOException {
        // 读取classpath路径下的文件
        InputStream is = JDKLogTest.class.getResourceAsStream("/jdklog.properties");
        LogManager.getLogManager().readConfiguration(is);
    
        logger.log(Level.INFO, "this is a INFO msg");
    }

    jdklog.properties配置:

    # Logging
    handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler
    
    # File Logging
    java.util.logging.FileHandler.pattern = D:/logs/java_util_log.log
    java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    java.util.logging.FileHandler.level = INFO
    java.util.logging.FileHandler.append = true
    
    # Console Logging
    java.util.logging.ConsoleHandler.level = ALL

    总结:
    JDK提供的日志组件,能满足基本的日志需求,功能比较单一:
    (1)支持的日志级别比较少: FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE(从低到高排序)。
    (2)允许输出日志到文件,控制台,和网络主机。
    (3)日志格式比较简单,默认输出格式为xml格式,可以指定为SimpleFormatter。

    总之,在日志需求比较简单的情况下,可以使用JDK自带的日志组件;否则,使用第三方日志组件才能满足更加复杂的需求。

  • 相关阅读:
    js学习笔记
    在 Windows 下远程桌面连接 Linux XManager 篇
    使用多种反病毒引擎扫描文件
    光纤接口小知识
    在 Windows 下远程桌面连接 Linux VNC 篇
    基于 RHEL 的 CentOS 5.5 发布
    安装Windows 7的XP模式的步骤
    跨平台加密版 SQLite 3 wxSQLite3
    Free 的迷思
    使用 iptables 限制黑客猜密码
  • 原文地址:https://www.cnblogs.com/nuccch/p/6770478.html
Copyright © 2011-2022 走看看