spring boot 使用SLF4J Logging-Java编程

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(3812)   2024-03-16 09:17:00

一、项目结构图

项目结构图
默认情况下,SLF4j日志记录包含在Spring boot包中。
application.properties

spring-boot-web-project$ mvn dependency:tree

+...
+- org.springframework.boot:spring-boot-starter-logging:jar:1.4.2.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.7:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.7:compile
[INFO] |  |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.21:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.21:compile
[INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.21:compile
+...

请注意
查看这个Spring Boot Logback XML模板,了解默认的日志记录模式和配置。

二、配置文件

2.1application.properties
要启用日志记录,创建一个应用程序。在资源文件夹的根目录下的属性文件。
日志记录。级别-定义日志级别,日志记录将输出到控制台。
application.properties

logging.level.org.springframework.web=ERROR
logging.level.com.mkyong=DEBUG

logging.file -定义日志文件,日志将输出到一个文件和控制台。
application.properties

logging.level.org.springframework.web=ERROR
logging.level.com.mkyong=DEBUG

#output to a temp_folder/file
logging.file=${java.io.tmpdir}/application.log

#output to a file
#logging.file=/Users/mkyong/application.log

logging.pattern -定义一个定制的日志记录模式。
application.properties

logging.level.org.springframework.web=ERROR
logging.level.com.mkyong=DEBUG

# Logging pattern for the console
logging.pattern.console= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"

# Logging pattern for file
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"

logging.file=/Users/mkyong/application.log

application.yml

这在YAML格式中是一样的
application.yml

logging:
  level:
    org.springframework.web: ERROR
    com.mkyong: DEBUG
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
  file: /Users/mkyong/application.log

Classic Logback.xml

如果您不喜欢Spring引导日志模板,只需创建一个标准的logback。xml在资源文件夹的根目录或类路径的根目录下。这将覆盖Spring引导日志模板。
logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<property name="DEV_HOME" value="c:/logs" />

	<appender name="FILE-AUDIT"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${DEV_HOME}/debug.log</file>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<Pattern>
				%d{yyyy-MM-dd HH:mm:ss} - %msg%n
			</Pattern>
		</encoder>

		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- rollover daily -->
			<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                        </fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>10MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

	</appender>

	<logger name="com.mkyong" level="debug"
		additivity="false">
		<appender-ref ref="FILE-AUDIT" />
	</logger>

	<root level="error">
		<appender-ref ref="FILE-AUDIT" />
	</root>

</configuration>

Spring Boot logging by Profile

请注意
阅读本文-概要文件的配置
 

创建一个logback-spring。在类路径的根目录中使用xml,以利用Spring引导提供的模板特性。

在以下的例子:

如果配置文件为dev,则将日志记录到控制台和一个滚动文件。

如果概要文件被戳了,则只记录到一个滚动文件。
logback-spring.xml
 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>

    <springProfile name="dev">
        <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
        <appender name="ROLLING-FILE"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
            <file>${LOG_FILE}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
            </rollingPolicy>
        </appender>
        <root level="ERROR">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="ROLLING-FILE"/>
        </root>
    </springProfile>

    <springProfile name="prod">
        <appender name="ROLLING-FILE"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
            <file>${LOG_FILE}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
        </appender>

        <root level="ERROR">
            <appender-ref ref="ROLLING-FILE"/>
        </root>
    </springProfile>

</configuration>


application.yml

spring:
  profiles:
    active: prod

logging:
  level:
    ROOT: ERROR
    org.springframework: ERROR
    org.springframework.data: ERROR
    com.mkyong: INFO
    org.mongodb: ERROR
  file: /Users/mkyong/application.log

对于非web启动应用程序,您可以像这样覆盖日志文件输出:

$ java -Dlogging.file=/home/mkyong/app/logs/app.log -jar boot-app.jar

Set Root Level

application.properties

# root logging level, warning : too much output
logging.level.=DEBUG

application.yml

logging:
  level:
    ROOT: DEBUG


下载演示demo

标签: spring boot SLF4J
地址:https://www.leftso.com/article/233.html

相关阅读

Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
ConsoleAppender概述       Log4j2 ConsoleAppender将应用程序生成的日志事件附加到System.out或System.err中
log4j使用,log4j框架在java编程中还是比较常见的,这里将会讲解通过log4j2的LevelRangeFilter将不同级别log存放不同文件中。
这个Log4j2示例将帮助您使用HTMLLayout配置log4j2.xml文件
Log4j 2 简介       Apache Log4j 2是对Log4j 1.x的升级,相对于其先前版本进行了重大改进,例如性能改进,自动重新加载已修改的配置文件,java 8 lambda...
简介       Apache Log4j2是对Log4j 1.x的升级,在性能上进行了重大改进,改进了配置文件的自动重装,Java 8 lambda支持和自定义日志级别,从而对Log4j 1....
概述下面的log4j2转换模式仅供参考,这样您和我就不会在每次创建/编辑log4j配置文件时浪费时间来构建这些模式
概述       学习配置log4j2.properties文件以将日志语句输出到控制台,滚动文件等
概述给定log4j2.xml是配置configure multiple appenders(例如控制台附加程序和文件附加程序)的参考
Spring Boot MQTT协议通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQ...