Java日志介绍(1)-java.util.logging.Logger

java.util.logging.Logger是JDK自带的日志工具,其简单实现了日志的功能,不是很完善,所以在实际应用中使用的比较少。本文直接用代码演示其使用方法,文中所使用到的软件版本:Java 1.8.0_191。

package com.inspur.demo.log;

import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

public class JULCase {
    public static void main(String[] args) {
        try {
            Logger logger = Logger.getLogger(JULCase.class.getName());
            
            //日志保存到文件
            FileHandler fileHandler = new FileHandler("d:/temp/a.log", true); 
            fileHandler.setLevel(Level.INFO);
            //设置日志格式
            fileHandler.setFormatter(new Formatter() {
                @Override
                public String format(LogRecord record) {
                    return record.getLevel() + ":" + record.getMessage() + "\n";
                }
            });
            logger.addHandler(fileHandler); 
            
            logger.info("aaaa");
            logger.warning("bbbb");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

日志消息被转发到已注册的Handler对象;在默认情况下,日志消息会往上递归发送到父Logger的Handler;由于默认的最上面的父Logger设置了ConsoleHandler,所以不需要再添加ConsoleHandler了。

该日志工具对应的配置文件为$JAVA_HOME/jre/lib/logging.properties,部分内容如下:

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

可以看到ConsoleHandler默认的级别为INFO。

你可能感兴趣的:(Java日志介绍(1)-java.util.logging.Logger)