(企业 / 公司项目)Java如何打印漂亮的日志?

发布时间:2023年12月20日

启动类

首先在idea创建一个项目这里就不演示了,直接看demo

?找到项目的启动类,首先把启动类日志打印基本信息,这样就不用找来找去找不到地址以及端口

主要作用就是启动一个Spring Boot应用程序,并获取程序的运行环境。首先创建一个SpringApplication对象,并传入应用程序的主类MemberApplication.class。接着通过调用run()方法启动应用程序,并获取应用程序的运行环境对象Environment。然后使用LOG.info()方法输出一段启动成功的日志信息。最后使用LOG.info()方法再输出一段访问地址的日志信息,其中通过调用environment.getProperty("server.port")方法获取当前应用程序的端口号,并将其作为占位符填入日志信息中。 记住仔细看导入的包

package com.javawa.train.member.config;

import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.env.Environment;

@SpringBootApplication
@ComponentScan("com.javawa")
@MapperScan("com.javawa.train.member.mapper")
public class  MemberApplication {
    // 定义日志变量
    private static  final Logger LOG  = LoggerFactory.getLogger(MemberApplication.class);

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(MemberApplication.class);
        Environment environment = app.run(args).getEnvironment();
        LOG.info("启动成功!!!");
        // 前面为 地址{}  参数为占位符
        LOG.info("访问地址:\thttp:/127.0.0.1:{}",environment.getProperty("server.port"));
    }
}

?接口日志以及各种日志

有两个版本 有些是logback.xml 有些是logback-spring.xml

xml配置如下:

?<!-- 修改一下路径-->
? ? <property name="PATH" value="./log/member"></property> 这里是你可以多个模块的话就可以把/member换成你自己的模块名字,配置以后就会生成日志到你项目路径中自动创建一个log包里面就是你的日志

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 修改一下路径-->
<!--    定义一个名为"PATH"的属性,其值为"./log/member",这个路径用于指定日志文件输出的目录。-->
    <property name="PATH" value="./log/member"></property>
<!--定义一个名为"STDOUT"的appender,其类为"ch.qos.logback.core.ConsoleAppender",用于将日志输出到控制台。-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 定义日志输出的格式,包括时间、日志级别、日志器名称、行号、线程名、日志ID和日志信息。其中,%d{mm:ss.SSS}表示时间格式为"mm:ss.SSS",%highlight表示高亮日志级别,%blue表示高亮日志器名称,%green表示高亮日志ID。-->
            <!-- <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%-50logger{50}:%-4line) %thread %msg%n</Pattern>-->
            <Pattern>%d{mm:ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %green(%-16X{LOG_ID}) %msg%n</Pattern>
        </encoder>
    </appender>


<!--   错误日志 -->
<!--    定义一个名为"TRACE_FILE"的appender,其类为"ch.qos.logback.core.rolling.RollingFileAppender",用于将日志输出到文件。-->
    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/trace.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout>
<!--            定义日志输出的格式,包括时间、日志级别、日志器名称、行号、线程名、日志ID和日志信息。其中,%d{mm:ss.SSS}表示时间格式为"mm:ss.SSS",%highlight表示高亮日志级别,%blue表示高亮日志器名称,%green表示高亮日志ID。-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %thread %green(%-16X{LOG_ID}) %msg%n</pattern>
        </layout>
    </appender>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PATH}/error.log</file>
<!--        定义滚动策略,用于定期创建新的日志文件。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--       定义日志文件名格式,包括日期和编号。其中,%d{yyyy-MM-dd}表示日期格式为"yyyy-MM-dd",%i表示编号,从0开始递增。-->
            <FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %thread %green(%-16X{LOG_ID}) %msg%n</pattern>
        </layout>
<!--        :定义日志过滤器,只允许日志级别为"ERROR"的日志通过。-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
<!--            设置日志过滤器的日志级别为"ERROR"。-->
            <level>ERROR</level>
<!--            设置日志过滤器匹配时执行的操作,这里是接受日志。-->
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <root level="ERROR">
        <appender-ref ref="ERROR_FILE" />
    </root>

    <root level="TRACE">
        <appender-ref ref="TRACE_FILE" />
    </root>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

以上是一个logback配置文件,用于配置日志的输出格式、文件名、大小、级别等信息。

?

文章来源:https://blog.csdn.net/qq_60870118/article/details/135094720
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。