本文介绍: 前言本篇就是介绍在Java使用相关的日志,适合初学者看,如果对这篇不感兴趣可以移步了,本篇主要围绕我们Java中的几种日志类型,也说不上有多深入,算的上浅入浅出吧,如果你有一段时间开发经验或者以及学过日志了,其实这篇文章对你并无太大用处。

前言本篇就是介绍在Java中使用相关的日志,适合初学者看,如果对这篇不感兴趣可以移步了,本篇主要围绕我们Java中的几种日志类型,也说不上有多深入,算的上浅入浅出吧,如果你有一段时间开发经验或者以及学过日志了,其实这篇文章对你并无太大用处。

说到日志,这玩意就很重要了,我们在实际开发中或者我们在做项目的时候,我们一般查找问题往日志查看,包括我们上线的项目,如果项目出现什么问题了,那我们第一件事情,就是下载项目运行日志,然后根据日志来判断程序在哪里出现了问题。目前Java中提供的日志有以下几种类型

接下来我们将采用这些案例进行demo日志打印:

一个引入相关依赖

		<dependency>
			<groupId&gt;org.springframework.boot</groupId&gt;
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- Spring Boot Starter -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.32</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>1.7.32</version>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
			<scope>compile</scope>
		</dependency>

配置了相关依赖之后,咱们来配置我们的相关配置文件

#端口号
server.port=9091
#开启应用调试模式
debug=true
#debug展示包以下的记录的日志级别debug
logging.level.com.miaow=debug

# 而logging.logback.rollingpolicy是Logback日志框架滚动策略配置
# clean-history-on-start表示是否应用程序启动清除历史日志文件默认falselogging.logback.rollingpolicy.clean-history-on-start=false
# file-name-pattern表示日志文件名格式默认为%d{yyyy-MM-dd}/%i.log,其中%d{yyyy-MM-dd}表示按照日期划分日志文件,%i表示日志文件的序号。
logging.logback.rollingpolicy.file-name-pattern=
#max-history表示保留的历史日志文件的最大数量,默认为7。
logging.logback.rollingpolicy.max-history=7
# max-file-size表示单个日志文件的最大大小默认为10MB。
logging.logback.rollingpolicy.max-file-size=10MB
# total-size-cap表示所有日志文件的总大小上限,默认为0B,表示没有上限。
logging.logback.rollingpolicy.total-size-cap=0B

需要注意的是,logging.logback.rollingpolicy是Logback的配置项,如果您使用的是其他日志框架,可能需要使用不同的配置项。

也可以:

logging:
  level:
    root: info
    com.example: debug
  file:
    name: myapp.log
    path: /var/log/myapp/

上面的配置表示将根日志级别设置info,将com.example包下的日志级别设置debug,并将日志输出/var/log/myapp/myapp.log文件中。

咱们创建四个类表示以上的四种日志方式

import java.util.logging.Logger;

/**
 * @date 2023年11月29日 14:52
 * @description
 */
public class MyClass1 {
    private static final Logger LOGGER = Logger.getLogger(MyClass1.class.getName());

    public void myMethod() {
        LOGGER.info("============>JDK Logging<============");
        LOGGER.info("This is an info message");
        LOGGER.warning("This is a warning message");
        LOGGER.severe("This is a severe message");
    }
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyClass3 {
    private static final Logger LOGGER = LoggerFactory.getLogger(MyClass3.class);

    public void myMethod() {
        LOGGER.info("================>Logback<================");
        LOGGER.info("This is an info message");
        LOGGER.warn("This is a warning message");
        LOGGER.error("This is an error message");
    }
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyClass4 {
    private static final Logger LOGGER = LoggerFactory.getLogger(MyClass4.class);

    public void myMethod() {
        LOGGER.info("===============>SLF4J<=================");
        LOGGER.info("This is an info message");
        LOGGER.warn("This is a warning message");
        LOGGER.error("This is an error message");
    }
}
import org.apache.log4j.Logger;
/**
 * @date 2023年11月29日 14:53
 * @description
 */
public class MyClass5 {

    private static final Logger LOGGER = Logger.getLogger(MyClass5.class);
    public void myMethod() {
        LOGGER.info("==============>Log4j<==================");
        LOGGER.info("This is an info message");
        LOGGER.warn("This is a warning message");
        LOGGER.error("This is an error message");
    }
}

然后我们在Spring Boot中启动类中配置:

@Slf4j
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
        MyClass1 m1 = new MyClass1();
        MyClass5 m2 = new MyClass5();
        MyClass3 m3 = new MyClass3();
        MyClass4 m4 = new MyClass4();
        m1.myMethod();
        m2.myMethod();
        m3.myMethod();
        m4.myMethod();
    }
}

如果你到这一步就以为结束了?
你不妨启动一下项目,我们发现MyClass5好像没生效,并且控制报错了:

log4j:WARN No appenders could be found for logger
(org.apache.ibatis.logging.LogFactory).

log4j:WARN Please initialize the log4j system properly. log4j:WARN See
http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我们发现问题出在,我们需要在Resources目录下建立一个log4j.properties文件

# Global logging configuration 开发时候建议使用 debug
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

放上如上代码,在启动,ok,我们发现日志如下。

2023-11-29 15:27:02.250  INFO 26848 --- [           main] com.miaow.demo.MyClass1         : ============>JDK Logging<============
2023-11-29 15:27:02.250  INFO 26848 --- [           main] com.miaow.demo.MyClass1         : This is an info message
2023-11-29 15:27:02.250  WARN 26848 --- [           main] com.miaow.demo.MyClass1         : This is a warning message
2023-11-29 15:27:02.250 ERROR 26848 --- [           main] com.miaow.demo.MyClass1         : This is a severe message
 INFO [main] - ==============>Log4j<==================
 INFO [main] - This is an info message
 WARN [main] - This is a warning message
ERROR [main] - This is an error message
2023-11-29 15:27:02.250  INFO 26848 --- [           main] com.miaow.demo.MyClass3         : ================>Logback<================
2023-11-29 15:27:02.250  INFO 26848 --- [           main] com.miaow.demo.MyClass3         : This is an info message
2023-11-29 15:27:02.250  WARN 26848 --- [           main] com.miaow.demo.MyClass3         : This is a warning message
2023-11-29 15:27:02.250 ERROR 26848 --- [           main] com.miaow.demo.MyClass3         : This is an error message
2023-11-29 15:27:02.250  INFO 26848 --- [           main] com.miaow.demo.MyClass4         : ===============>SLF4J<=================
2023-11-29 15:27:02.250  INFO 26848 --- [           main] com.miaow.demo.MyClass4         : This is an info message
2023-11-29 15:27:02.250  WARN 26848 --- [           main] com.miaow.demo.MyClass4         : This is a warning message
2023-11-29 15:27:02.251 ERROR 26848 --- [           main] com.miaow.demo.MyClass4         : This is an error message

在Spring Boot中使用日志有以下几个好处:

总之,使用日志可以提供丰富的运行时信息和统计数据,帮助我们更好地了解和管理应用程序。在开发运维过程中,合理配置和利用日志可以提高开发效率、问题排查能力和系统稳定性。

原文地址:https://blog.csdn.net/qq_45922256/article/details/134688083

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10867.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注