ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

private static Logger logger =Logger.getLogger(AssembleMsgService.class)什么意思?

2022-02-04 23:59:01  阅读:118  来源: 互联网

标签:AssembleMsgService logger private class getLogger 日志 Logger


作为一个新人中的菜鸡,最近在看一个项目的代码其中有这么一段看得我很是费解

public class AssembleMsgService {
	private static Logger logger = Logger.getLogger(AssembleMsgService.class);

1、Logger logger = logger.getlogger();

看到这个会想到这是log4j下的一个方法,log4j是一个开源项目,通过在项目中使用Log4J我们可以控制日志信息输出到控制台、文件、GUI组件、数据库等,可以通过定义输出级别控制日志的输出过程,方便项目调试。

所以看到Logger就应该想到(日志记录器)

相比较于System.out.println()方法来调试一段代码,如果有众多控制台的话输出会降低应用性能,于是用Log4J会好很多。

在使用这个方法的时候只需要向上面那样在每个类下直接声明一个私有属性就可以了
但是有一点很麻烦,就是每次在使用logger中的时候都要重复声明上面Logger的对象

1、1日志级别

既然是控制日志输出,那么也应该有对应的级别

Log4J在org.apache.log4j.Level类中定义了OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL其中级别具体含义我就不一一述说了可自行查阅相关文档
优先级为ERROR>WARN>INFO>DEBUG

给来一个代码演示:

import java.util.logging.Level;
import java.util.logging.Logger;

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

        BasicConfigurator.configure();
        logger.setLevel(Level.ALL);
    }
}

通过 Logger.getLogger(Test.class) 创建 Logger 实例,然后调用 BasicConfigurator.configure() 方法指定该 Logger 使用默认的配置信息,接着调用
looger.setLevel(Level.ALL) 设置 Logger 的日志输出级别为 ALL

这里面的BasicConfigurator.configure() 方法指定该 Logger 使用默认的配置信息,不是说一定要这样,我是因为项目中没有Log4J的配置文件需要导入,所以必须得标记下设置默认路径

2、(AssembleMsgService.class)是什么意思?

看到.class后缀名第一时间想到的是编译文件,我们的java文件在编写好之后通过编译得到一个可执行文件.class文件

上面讲到了一个概念叫日志输出。在一个项目中日志得作用是无可厚非的,所以控制好一个日志对于测试人员查找BUG以及优化代码等有着很大的帮助
因为Logger.getLogger方法需要传入Class类型对象,这样该logger的信息中会详细体现出是哪个路径的哪个类的日志

Logger logger = logger.getlogger(AssembleMsgService.class)
的作用就是打印输出AssembleMsgService这个类的日志信息到控制台

标签:AssembleMsgService,logger,private,class,getLogger,日志,Logger
来源: https://blog.csdn.net/qq_43842093/article/details/122787131

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有