Java知识积累——logback日志工具,告别到处输出变量值来调试程序的时代吧~

本文主要是介绍Java知识积累——logback日志工具,告别到处输出变量值来调试程序的时代吧~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在大学垒代码时,遇到程序错误,输出不是预计的情况时,你是怎么解决的呢?我的解决办法就是到处System.out.pringln();,打出当时的变量值,一点一点找哪里出错了。结果有的时候就忘了到底在哪里添加了用于找错的输出语句,然后就去不掉多余的输出了,然后就各种抓狂了。以及等等很多情况吧,不知道你们遇到过吗?步入职场后,逐渐接触到了日志这个概念,虽然之前也听说过,但却不了解其真正用途。又一次在心里痛骂了大学的教育之后,我开始自学目前公司在用的日志工具——logback。

 

日志记录了程序的运行状态,输出了你指定需要输出的内容,能够方便快捷的定位出错的位置和原因。那么怎么使用logback呢,下面来简单介绍一下:首先需要导入第三方jar包,分别为logback-classic-1.0.6.jar,logback-core-1.0.6.jar,slf4j-api-1.6.4.jar

下载地址

slf4j:http://www.slf4j.org/download.html

logback:http://logback.qos.ch/download.html

 

Logback 分为三个模块:logback-core,logback-classic,logback-access(我们只用到前两个)

logback-core 是核心;

logback-classic 改善了 log4j,且自身实现了 SLF4J API,所以即使用 Logback 你仍然可以使用其他的日志实现,如原始的 Log4J,java.util.logging 等;

logback-access 让你方便的访问日志信息,如通过 http 的方式。

 

将以上3个jar包导入工程后,需要配置logback.xml文件,告诉logback应该怎么工作。所以在src上右键新建一个xml文件,命名为logback.xml。关于logback.xml应该如何配置,其中的标签含义等,请阅读下列文章,在此感谢分享了这些文章的原作者。

logback 简介

logback 常用配置详解(一)<configuration> and <logger>

logback 常用配置详解(二)<appender>

logback 常用配置详解(三)<filter>

 

配置完成后,我们即可在程序中应用logback进行日志输出,其方便快捷需要大家慢慢体验了。给一个使用logback的例子,该例子即使不配置logback.xml也可以运行,logback采用了默认配置直接输出到了控制台

 1 import org.slf4j.Logger;
 2 import org.slf4j.LoggerFactory;
 3 
 4 public class LogbackTest { 5     private static final Logger debugLogger = LoggerFactory.getLogger(LogbackTest.class); 
 6     public static void main(String[] args) {
 7         debugLogger.debug("debug thing");
 8         debugLogger.warn("warn thing");
 9     }
10 }

 再放一个logback.xml的配置实例

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <configuration>
 4   <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
 5     <encoder>
 6       <pattern>%d{MMdd.HHmmss.SSS} [%-24t] %-5p L:%-3L %-22c{0} - %m%n</pattern>
 7     </encoder>
 8     
 9     <!-- 只输出level级别的日志 -->
10     <filter class = "ch.qos.logback.classic.filter.LevelFilter">
11       <level>INFO</level>
12       <onMatch>ACCEPT</onMatch>
13       <onMismatch>DENY</onMismatch>
14     </filter>
15   </appender>
16 
17   <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
18     <File>log/server.log</File>
19     <encoder>
20       <pattern>%d{MMdd.HHmmss} [%-22t] %-5p L:%-3L %-22c{0} - %m%n</pattern>
21     </encoder>
22     
23     <!-- 只输出level级别以上的日志 -->
24     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
25       <level>INFO</level> 
26     </filter>
27     
28     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
29       <fileNamePattern>log/server.log.%d{yyyyMMddHH}</fileNamePattern>
30     </rollingPolicy>
31   </appender>
32   
33   <logger name="org.logback.test.LogbackTest" level="DEBUGE" />
34   
35   <root level="DEBUGE">
36     <appender-ref ref="FILE"/>
37     <appender-ref ref="stdout"/>
38   </root>
39 </configuration>

输出如下:

0402.153319.903 [main                    ] INFO  L:30  LogbackTest            - info thing

通过日志的输出,我们能够很快的定位是哪个类的哪行出现了问题。

这篇关于Java知识积累——logback日志工具,告别到处输出变量值来调试程序的时代吧~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/606068

相关文章

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步