Java_日志技术
一、日志技术
1.1 日志概述
想搞清楚什么是日志,其实可以通过下面几个问题来了解的。
- 系统系统能记住某些数据被谁操作,比如被谁删除了?
- 想分析用户浏览系统的具体情况,比如挖掘用户的具体喜好?
- 当系统在开发中或者上线后出现了Bug,崩溃了,该通过什么去分析,定位Bug?
而日志就可以帮我们解决以上的问题。所以日志就好比生活中的日记,日记可以记录生活中的点点滴滴;而程序中的日志,通常就是一个文件,里面记录了程序运行过程中产生的各种数据。
日志技术有如下好处
- 日志可以将系统执行的信息,方便的记录到指定位置,可以是控制台、可以是文件、可以是数据库中。
- 日志可以随时以开关的形式控制启停,无需侵入到源代码中去修改。
1.2 日志的体系
知道了,什么是日志,日志能干什么。接下来需要给同学们介绍一下有哪些日志技术,以及日志的体系。
在行内,其实有很多日志框架给开发者使用。所谓日志框架就是由一些牛人或者第三方公司已经做好的实现代码,后来者就可以直接拿过去使用。
日志框架有很多种,比如有JUL(java.util.logging)、Log4j、logback等。但是这些日志框架如果使用的API方法都不一样的话,使用者的学习成本就很高。为了降低程序员的学习压力,行内提供了一套日志接口,然后所有的日志框架都按照日志接口的API来实现就可以了。
这样程序员只要会一套日志框架,那么其他的也就可以通用,甚至可以在多套日志框架之间来回切换。比较常用的日志框架,和日志接口的关系如下图所示
这里推荐同学们使用Logback日志框架,也在行业中最为广泛使用的。
Logback日志分为哪几个模块
1.3 Logback快速入门
接下来,快速使用一下Logback日志框架,使用Logback记录几条日志信息到文件中去和将日志信息打印在控制台上。
由于Logback是第三方提供的技术,所以首先需要啊将Jar包引入到项目中,具体步骤如下
-
在资料中找到
slftj-api.jar、logback-core.jar、logback-classes.jar
这三个jar包,复制一下 -
在当前模块下面新建一个lib文件夹,把刚刚复制的三个jar包都粘贴到此处
-
从资料中找到
logback.xml
配置文件,将此文件复制粘贴到src目录下(必须是src目录) -
然后就可以开始写代码了,在代码中创建一个日志记录日对象
public static final Logger LOGGER = LoggerFactory.getLogger("当前类名");
-
开始记录日志,代码如下
public class LogBackTest { // 创建一个Logger日志对象 public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest"); public static void main(String[] args) { //while (true) { try { LOGGER.info("chu法方法开始执行~~~"); chu(10, 0); LOGGER.info("chu法方法执行成功~~~"); } catch (Exception e) { LOGGER.error("chu法方法执行失败了,出现了bug~~~"); } //} } public static void chu(int a, int b){ LOGGER.debug("参数a:" + a); LOGGER.debug("参数b:" + b); int c = a / b; LOGGER.info("结果是:" + c); } }
当我们运行程序时,就可以看到控制台记录的日志
同时在文件中,也有一份这样的日志信息。文件在哪里内,从配置文件中去找
打开D:/log/data.log
看一下文件中是否有记录日志吧!!
关于Logback的快速入门就做完了。至于日志的配置文件中,其他的配置是什么含义下一节再继续学习。
1.4 日志配置文件
Logback提供了一个核心配置文件logback.xml,日志框架在记录日志时会读取配置文件中的配置信息,从而记录日志的形式。具体可以做哪些配置呢?
1. 可以配置日志输出的位置是文件、还是控制台
2. 可以配置日志输出的格式
3. 还可以配置日志关闭和开启、以及哪些日志输出哪些日志不输出。
-
如下图所示,控制日志往文件中输出,还是往控制台输出
-
如下图所示,控制打开和关闭日志
-
如下图所示,控制日志的输出的格式
日志格式是由一些特殊的符号组成,可以根据需要删减不想看到的部分。比如不想看到线程名那就不要[%thread]。但是不建议同学们更改这些格式,因为这些都是日志很基本的信息。
1.5 配置日志级别
-
在哪里配置日志级别呢?如下图所示
-
Logback只输出大于或者等于核心配置文件配置的日志级别信息。小于配置级别的日志信息,不被记录。
配置的是trace,则trace、debug、info、warn、error级别的日志都被输出 配置的是debug, 则debug、info、warn、error级别的日志被输出 配置的是info,则info、warn、error级别的日志被输出 ...
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!