别在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中String.split()用法小结

    Java中String.split()用法小结 什么是split()函数 在Java中,String类中提供了一个split()函数,它的作用是将字符串按照给定的分隔符(正则表达式)分割成若干个子字符串,存储在一个字符串数组中并返回。split()函数的定义如下: public String[] split(String regex) 其中regex是一个表…

    Java 2023年5月27日
    00
  • SpringMVC框架整合Junit进行单元测试(案例详解)

    SpringMVC框架整合Junit进行单元测试(案例详解) 在 SpringMVC 中,我们可以使用 Junit 进行单元测试。本文将详细讲解 SpringMVC 框架整合 Junit 进行单元测试的完整攻略,包括如何配置 SpringMVC、如何使用 Junit 进行单元测试、如何编写测试用例等。 配置 SpringMVC 在使用 Junit 进行单元测…

    Java 2023年5月18日
    00
  • 在JSP页面中动态生成图片验证码的方法实例

    下面是详细讲解在JSP页面中动态生成图片验证码的方法实例的完整攻略,包含两条示例。 1. 准备工作 首先,我们需要在项目中引入kaptcha依赖,以便使用该工具生成验证码图片和文字。在Maven项目中,可以在pom.xml文件中添加以下依赖: <dependency> <groupId>com.github.penggle</g…

    Java 2023年5月20日
    00
  • java与js代码互调示例代码

    当需要在Java与JavaScript之间进行代码互调时,可以使用Java在JavaScript中定义的函数来实现该功能。以下是使用Java代码在JavaScript中定义一个函数,并从JavaScript调用该函数的示例代码: 第一步是为Java代码编写一个类,在类中编写一个用于输出信息到控制台的函数: package com.example; publi…

    Java 2023年5月24日
    00
  • ssm 使用token校验登录的实现

    让我们来详细讲解一下“SSM 使用 Token 校验登录的实现”。 通过 Token 进行登录认证机制是常见的 Web 应用程序的身份认证机制之一。Token 是在身份验证后服务器返回的字符串,通常用于在客户端和服务器之间共享身份验证状态。以下是实现 SSM 使用 Token 校验登录的攻略: 1.概述 Token 认证机制主要分为以下几个流程: 用户通过表…

    Java 2023年6月16日
    00
  • java实现日历(某年的日历,某月的日历)用户完全自定义

    实现Java日历需要用到以下几个方面的知识: 日期和时间类:Java中有java.util.Date和java.util.Calendar类,但这些类已经被Java 8中的全新日期和时间API(Java.time)所取代,建议使用新API。 控制台输出:Java中有System.out.println()方法可以将内容输出到控制台。 用户输入:Java中有S…

    Java 2023年5月20日
    00
  • java操作ftp下载文件示例

    下面是关于Java操作FTP下载文件的示例攻略。 1. 使用 commons-net 库进行 FTP 文件下载 1.1 导入commons-net.jar包 要进行FTP文件下载,首先需要导入Apache的commons-net库,常见的方式是将其作为依赖项加入到Maven项目中: <dependency> <groupId>comm…

    Java 2023年5月19日
    00
  • Spring session实现Session共享

    要实现Spring Session的Session共享,需要几个步骤: 1. 添加Spring Session的依赖 在pom.xml中添加以下依赖: <dependencies> <!–添加Spring Session的依赖–> <dependency> <groupId>org.springframew…

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