原力计划java常见log日志的使用方法详细解析

目录

log日志可以debug错误或者在关键位置输出想要的结果

java日志使用一般有原生logger、log4j、Slf4j等

一般的日志级别都有如下(不同日志不一样的方法参数,注意甄别)

日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL

参数

描述

OFF、ON

不输出或者输出所有级别信息,通常使用在setLevel方法中

FATAL

致命错误

ERROR

错误error

WARN

告警信息

INFO

info信息

DEBUG

调试信息

TRACE

运行轨迹信息

CONFIG

设定配置信息

FINE

级别轻微信息

FINER

级别更轻微信息

FINEST

级别最轻微信息

1. Java.util.Logger

科普一下原生日志生成工具,主要引用 import java.util.logging.Logger;

源代码函数大致有如下方法:

(给定消息将被转发到所有注册的输出处理程序对象)

// 严重信息
public  void  severe(String msg)  {
  log(Level.SEVERE, msg);}

// 警告信息
public  void  warning(String msg)  {
  log(Level.WARNING, msg);}

// info信息
 public  void  info(String msg)  { log(Level.INFO, msg);}

// 设定配置信息
public  void  config(String msg)  { log(Level.CONFIG, msg);}

// 级别小信息
public  void  fine(String msg)  { log(Level.FINE, msg);}

// 级别更小信息
public  void  finer(String msg)  { log(Level.FINE, msg);}

// 级别最小信息
public  void  finest(String msg)  { log(Level.FINE, msg);}

具体示例如下:

package com.gaokaoli.logger;
import java.util.logging.Logger;

public class text1 { 
    public  static  void  main(String  []args){ 
        Logger logger = Logger.getLogger("text1");

        logger.severe("严重信息");
        logger.warning("警示信息");
        logger.info("info信息");

        logger.config("设定配置信息");
        logger.fine("级别小的信息");
        logger.finer("级别更小的信息");
        logger.finest("级别最小的信息");
    }
}

输出截图如下:

原力计划java常见log日志的使用方法详细解析

可以看到小于info级别的信息不会在终端上显示输出

通过 logger.setLevel(Level.ALL); 来控制输出的级别。

ALL则输出severe、warning以及info,OF不输出,如果设置WARNING,则只输出severe以及warning;同理可推其他设置;

原力计划java常见log日志的使用方法详细解析

方法中也有通过调用提供的供应商函数来构造消息,并将其转发到所有注册的输出处理程序对象。

// 严重信息
public  void  severe(Supplier msgSupplier)  { log(Level.SEVERE, msgSupplier);}

// 警告信息
public  void  warning(Supplier msgSupplier)  { log(Level.WARNING, msgSupplier);}

// info信息
 public  void  info(Supplier msgSupplier)  { log(Level.INFO, msgSupplier); }

// 设定配置信息
public  void  config(Supplier msgSupplier)  { log(Level.CONFIG, msgSupplier);}

// 级别小信息
public  void  fine(Supplier msgSupplier)  { log(Level.FINE, msgSupplier);}

// 级别更小信息
public  void  finer(Supplier msgSupplier)  { log(Level.FINER, msgSupplier);}

// 级别最小信息
public  void  finest(Supplier msgSupplier)  { log(Level.FINEST, msgSupplier);}

2. org.apache.logging.log4j

在xml文件中导入依赖包


       org.apache.logging.log4j
       log4j-api
       2.14.1



       org.apache.logging.log4j
       log4j-core
       2.14.1

示例代码如下:

package com.gaokaoli.logger;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class test3 { 
    public  static  void  main(String  []args){ 
        Logger logger = LogManager.getLogger("text3");
        logger.fatal("fatal错误");
        logger.error("error错误");
        logger.warn("warn警示");
        logger.info("info基本信息");
        logger.debug("debug调试");
        logger.trace("trace 信息");
    }
}

输出结果如下:

原力计划java常见log日志的使用方法详细解析

其方法大致都有如下:

原力计划java常见log日志的使用方法详细解析

具体使用什么方法可对应进行查看(此处省略)

2.1 xml配置文件

如果引入XML配置文件

和上面一样需要引入Jar包,Import类和代码

对于以下配置文件的讲解(已加入注释)

具体可参考这篇文章: [Log4j2进阶使用(Pattern Layout详细设置)]

(https://www.cnblogs.com/bugzeroman/p/12858115.html)

<?xml version="1.0" encoding="UTF-8"?>






    
        
        logs
        
        

        
        
        
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}][%thread] %-5level %l %m%n

        
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}][%thread] %-5level %logger{1.} %m%n

        
        INFO

        
        10

        
        
        1

        
        true

        
        INFO
    

    
        
        
            
            
            
            
        

        
        
            
            
                
                
            
            
            
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                
            
        

        
        
            
            
                
                
            
            
            
                
                
            
        

        
        
            
            
                
                
            
            
        

        
        
            
            
                
                
            
            
        

    

    
    

        
        
            
            
            
        

        
        
            
            
        

        
        
            
            
        

        
        
            
            
            
        

        
        
            
            
            
        

    

3. org.slf4j.Logger

目前主流的日志框架,可以使用占位符进行参数占位

主要通过slf4j作为日志输出

在每个类的开头都加入如下:

在xml文件中引入依赖包


    org.slf4j
    slf4j-simple
    1.7.25
    compile

如果不引入或者引入错误

会出现如下问题: 出现SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.的解决方法

代码中通过引用通过

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

具体示例代码如下:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class text2 { 
    public static final Logger logger = LoggerFactory.getLogger(text2.class);
    public static void main(String []args){ 
        logger.error("error错误");
        logger.warn("warn警示");
        logger.info("info基本信息");
        logger.debug("debug调试");
        logger.trace("trace信息");
    }
}

截图如下:

原力计划java常见log日志的使用方法详细解析

通过输出结果可看到
LoggerFactory.getLogger输出的结果带有类的相对路径,便于开发

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章