spring boot 使用SLF4J Logging-Java编程

教程分享 > Java教程 > Spring (8321) 2024-08-07 11:05:25

一、项目结构图

项目结构图
默认情况下,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

https://www.leftso.com/article/233.html

相关文章
Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
Spring Boot MQTT协议通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQ...
Java编程中spring boot项目如何获取spring容器applicationContext
Spring Boot validation整合hibernate validator实现数据验证,Spring Boot validation使用说明,Spring Boot validat...
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
spring boot webflux client实战,webclient是spring webflux的一个小组件。对于Java的http通讯来说,webclient是非常简单易用的。
Spring boot hessian 通讯加密,Spring boot hessian RPC框架通讯之间的加密验证。实现安全的RPC访问
学习使用ClassPathResource和ResourceLoader类从 Spring Boot应用程序中的资源文件夹中读取文件
Spring Boot 入门 AOP 日志处理,这里主要讲解spring boot 中采用AOP方式进行日志的统一处理。spring 框架的处理也是一样。综合来讲,本文主要讲解了spring b...
一、spring boot shiro 无状态token认证项目结构图​二、无状态spring boot shiro相关配置2.1shiro redis 缓存配置首先是实现shiro的cache...
spring boot整合activemq。本博客将通过一个简单的例子讲解在spring boot中activemq如何作为消费者(Consumer )和如何在spring boot中消息提供者...
spring boot项目中使用logback日志,USING LOGBACK WITH SPRING BOOT ,Logback让一个优秀的企业应用程序的日志框架——它是快速,简单但强大的配置...
本文章主要简单讲解目前流行的springMVC4+Spring4+MyBatis3(即SSM)框架整合
简述本文主要通过一个简单的例子模拟实现秒杀情景,其中主要使用Redis事物进行实现spring boot为提供方便的环境