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

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、