别在Java代码里乱打日志了,这才是正确的打日志姿势

这里是关于正确打印日志的攻略:

1. 什么是好的日志?

一个好的日志应该包含以下几个方面:

表现良好

  • 日志输出应有较好的可读性;
  • 日志输出要具有一定层次性;
  • 日志输出要有一定格式化,比如在同一业务中输出的日志应当保持一致性。

提供足够的信息

  • 日志应当详细描述应用发生了什么,以及发生原因;
  • 一些需要排查的问题,还可以在日志中给出一些额外的信息或态度。

不只是输出debug级日志

  • 日志级别应当由低到高,分别为DEBUG、INFO、WARN、ERROR和FATAL;
  • 需要保证日志条数限制,避免过多的日志占用系统资源。

2. 日志输出库示例

Java中的日志输出库有很多,常见的有JDK自带的java.util.logging、log4j、Logback等。

以下是使用Logback输出日志的示例:

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- 日志输出格式 -->
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </layout>
  </appender>

  <!-- 将日志输出到指定位置 -->
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>logs/myapp.log</file>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 输出debug级别以上的日志 -->
  <root level="debug">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>
</configuration>

在Java中使用Logback输出日志,示例代码如下:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyApp {
  // 通过声明log,使用LoggerFactory获取Logger
  private static final Logger log = LoggerFactory.getLogger(MyApp.class);

  public static void main(String[] args) {
    log.debug("输出debug级别的日志");
    log.info("输出info级别的日志");
    log.warn("输出warn级别的日志");
    log.error("输出error级别的日志");
  }
}

以上示例演示了如何在Java代码中使用Logback输出日志,通过设置UTF格式的LogBack配置,设置在控制台和指定文件的输出,还示范了如何在不同的情况下输出不同的级别的日志。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:别在Java代码里乱打日志了,这才是正确的打日志姿势 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • JAVA堆排序算法的讲解

    JAVA堆排序算法的讲解 算法简介 堆排序(Heap Sort)是一种选择排序,它的主要思想是将待排序序列构建成一个大顶堆或小顶堆,然后将堆顶元素与最后一个元素交换位置,再对剩余 n – 1 个元素进行同样的操作,依次类推,直到整个序列有序。 堆排序的时间复杂度为 O(nlogn),是一种比较高效的排序算法。 算法步骤 对待排序的序列进行堆的构建,构建出一个…

    Java 2023年5月19日
    00
  • JAVA的Random类的用法详解

    JAVA的Random类的用法详解 java.util.Random类是一个用于生成伪随机数的类,它在Java中的使用非常广泛。在今天的攻略中,我们将详细讲解Random类的各种用法,以帮助您更好地掌握它的使用方法。 生成随机数 首先,我们来看下如何使用Random类来生成随机数。 随机数的类型可以是整数或浮点数。 生成整数随机数 生成整数随机数的方法是使用…

    Java 2023年5月19日
    00
  • Java提效神器Stream的一些冷门技巧汇总

    Java提效神器Stream的一些冷门技巧汇总 什么是Java Stream Java Stream是Java 8引入的一个新的集合处理方式,它可以用来处理很大的数据流,并行处理数据以及实现简洁的函数式编程。 Stream的主要优点是可以大大简化代码,同时可以在处理大数据集时提高性能。Stream是延迟执行的,也就是说它不会立即处理所有的数据,而是在需要的时…

    Java 2023年5月26日
    00
  • Java Spring Boot实战练习之单元测试篇

    以下是”Java Spring Boot实战练习之单元测试篇”的完整攻略,包含了步骤和示例。 1. 什么是单元测试 单元测试是一种测试方法,它用于测试整个系统或应用程序的一个单独模块或方法。单元测试是一种自动化测试方法,它能够验证代码、避免错误和缺陷,并将问题隔离到特定的代码块层面上。 2. 创建一个Spring Boot项目 在开始单元测试之前,需要先创建…

    Java 2023年5月19日
    00
  • 使用jdk1.8实现将list根据指定的值去分组的操作

    这里是使用JDK1.8实现将List根据指定的值进行分组的完整攻略。 1. 需求分析 我们要实现将List根据指定的值进行分组,要求在分组结果中,具有相同指定值的元素会被分到同一组中。例如,假设我们有如下的Student类: public class Student { private int id; private String name; private…

    Java 2023年5月26日
    00
  • springboot 如何修改默认端口及application.properties常用配置

    修改Spring Boot默认端口和配置文件是很重要的。这里是修改步骤: 修改Spring Boot默认端口 在Spring Boot的默认情况下,它会使用端口8080。如果我们需要更改端口,我们可以通过编辑application.properties文件或application.yml文件进行更改。 application.properties 文件示例 …

    Java 2023年6月15日
    00
  • 图解Spring框架的设计理念与设计模式

    图解Spring框架的设计理念与设计模式 Spring框架是Java生态中最受欢迎的开源框架之一,它利用了许多常用的设计模式和技术,用以实现IoC和AOP等特性,在Java应用程序的开发中扮演着重要的角色。 Spring框架的设计理念 Spring框架的设计理念可以用”POJO”(Plain Old Java Object)来概括,它鼓励开发者使用简单的Ja…

    Java 2023年5月19日
    00
  • SpringBoot统计、监控SQL运行情况的方法详解

    关于SpringBoot统计、监控SQL运行情况的方法,可以采用以下两种方式实现: 1. 使用Druid Spring Boot Starter Druid Spring Boot Starter是阿里巴巴为了简化Druid在Spring Boot中的配置而推出的开箱即用的库。它基于Druid DataSource和Spring Boot自动配置机制,并提供…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部