文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java常见log日志如何使用

2023-07-02 16:36

关注

今天小编给大家分享一下java常见log日志如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言

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

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

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

参数描述
OFF、ON不输出或者输出所有级别信息,通常使用在setLevel方法中
FATAL致命错误
ERROR错误error
WARN告警信息
INFOinfo信息
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<String> msgSupplier) {log(Level.SEVERE, msgSupplier);}// 警告信息public void warning(Supplier<String> msgSupplier) {log(Level.WARNING, msgSupplier);}// info信息 public void info(Supplier<String> msgSupplier) {log(Level.INFO, msgSupplier); }// 设定配置信息public void config(Supplier<String> msgSupplier) {log(Level.CONFIG, msgSupplier);}// 级别小信息public void fine(Supplier<String> msgSupplier) {log(Level.FINE, msgSupplier);}// 级别更小信息public void finer(Supplier<String> msgSupplier) {log(Level.FINER, msgSupplier);}// 级别最小信息public void finest(Supplier<String> msgSupplier) {log(Level.FINEST, msgSupplier);}

2. org.apache.logging.log4j

在xml文件中导入依赖包

<dependency>       <groupId>org.apache.logging.log4j</groupId>       <artifactId>log4j-api</artifactId>       <version>2.14.1</version></dependency><dependency>       <groupId>org.apache.logging.log4j</groupId>       <artifactId>log4j-core</artifactId>       <version>2.14.1</version></dependency>

示例代码如下:

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日志如何使用

具体使用什么方法可对应查看

3. org.slf4j.Logger

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

主要通过slf4j作为日志输出
在每个类的开头都加入如下:

在xml文件中引入依赖包

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.25</version><scope>compile</scope></dependency>

如果不引入或者引入错误
会出现如下问题:出现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输出的结果带有类的相对路径,便于开发

以上就是“java常见log日志如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯