Java日志(一):Jul(java.util.logging.Logger)

日志是任何应用程序、系统中非常重要的部分!!!
实际应用,比如接口调用需要调用日志记录,比如事件操作需要操作日志记录,比如问题报错需要错误日志记录。
合理的日志记录,使得系统的任何风吹草动都让人了如指掌,对于后续的分析排查统计完全能起到事半功倍的作用。

Java自带的log,类图大概如下:
Java日志(一):Jul(java.util.logging.Logger)_第1张图片
如上图,Handler类负责打印日志到文件、控制台或者网络上等等,Handler类中的Formatter类负责日志格式的排版,每个Handler类实例都有自己的输出等级Level,而Logger类则负责把日志内容封装成对象,然后调用Handler类来处理这些日志对象的最终输出。
以上关系可以使用下面的代码表示:

    public static void main(String[] args) throws IOException {
        //根据名称创建一个Logger
        Logger logger = Logger.getLogger(MyLogger.class.getName());
        //创建文件Handler并设置格式Formatter和等级Level
        FileHandler fileHandler = new FileHandler("C:\\Users\\l\\Desktop\\mylog.log", true);
        fileHandler.setFormatter(new SimpleFormatter());
        fileHandler.setLevel(Level.WARNING);
        //添加到logger
        logger.addHandler(fileHandler);
        //进行日志输出
        logger.warning("warning ...");
    }

另外,可以在配置文件中指定输出类别和格式:

    public static void main(String[] args) {
        System.setProperty("java.util.logging.config.file", "mylog.properties");
        Logger logger = Logger.getLogger(MyLogger.class.getName());

        //进行日志输出
        logger.info("this is info msg...");
    }

mylog.properties:

handlers= java.util.logging.FileHandler,java.util.logging.ConsoleHandler

#.level= INFO

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = C:\\Users\\l\\Desktop\\mylog.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.append = true
java.util.logging.FileHandler.level = FINE
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

# 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

创建日志logger时会自动读取配置文件java.util.logging.LogManager#readConfiguration(),并把配置文件里的参数设置进去。

你可能感兴趣的:(java)