springboot配置logback.xml(多环境配置)

一、配置dev,pro环境,通过spring.profiles.active属性切换日志配置

在这里插入图片描述

1.application.yml配置

# Spring配置
spring:
  profiles:
    active: dev
# 指定日志配置文件(默认)
logging:
  config: classpath:logback.xml

2.application-dev.yml配置

# 指定日志配置文件
logging:
  config: classpath:logback-dev.xml

3.logback.xml (test,pro环境linux)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志存放路径 -->
    <property name="log.path" value="/home/hsc/logs/supervision" />
    <!-- 日志输出格式 -->
	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

	<!-- 控制台输出 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
	</appender>
	
	<!-- 系统日志输出 -->
	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
			<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
	</appender>
	
	<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
			<!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
			<!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
	
	<!-- 系统模块日志级别控制  -->
	<logger name="com.hwasee" level="info" />

	<root level="info">
		<appender-ref ref="console" />
	</root>
	
	<!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
	
</configuration> 

4.logback-dev.xml (dev环境windows)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志存放路径 -->
    <springProperty scope="context" name="appName" source="spring.application.name" />
    <property name="log.path" value="./日志/${appName}" />
    <!-- 日志输出格式 -->
	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

	<!-- 控制台输出 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
	</appender>
	
	<!-- 系统日志输出 -->
	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
			<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
	</appender>
	
	<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
			<!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
			<!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
	
	<!-- 系统模块日志级别控制  -->
	<logger name="com.hwasee" level="info" />

	<root level="info">
		<appender-ref ref="console" />
	</root>
	
	<!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>

</configuration> 

dev开发环境windows:(spring.application.name配置的即为health-hsc-supervision)
在这里插入图片描述

二、springProperty和springProfile

1.logback.xml (springProfile:测试时不生效可能是版本问题)

<springProfile name="dev">
    <!-- 开发环境时激活 -->
</springProfile>
 
<springProfile name="dev,test">
    <!-- 开发,测试的时候激活-->
</springProfile>
 
<springProfile name="!prod">
    <!-- 当 "生产" 环境时,该配置不激活-->
</springProfile>

2.logback.xml (springProperty)

    <!-- 日志存放路径 -->
    <springProperty scope="context" name="appName" source="spring.application.name" />
    <property name="log.path" value="./日志/${appName}" />

在这里插入图片描述

### 回答1: Spring Boot 配置 Logback.xml 的步骤如下: 1. 在项目的 src/main/resources 目录下创建 logback.xml 文件。 2. 在 logback.xml 文件中配置日志输出格式、日志级别、日志文件路径等信息。 例如: ``` <?xml version="1." encoding="UTF-8"?> <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/myapp.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/myapp.%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> </configuration> ``` 3. 在 Spring Boot配置文件(application.properties 或 application.yml)中配置日志级别。 例如: 在 application.properties 文件中添加以下配置: ``` logging.level.root=INFO ``` 在 application.yml 文件中添加以下配置: ``` logging: level: root: INFO ``` 以上就是 Spring Boot 配置 Logback.xml 的步骤。 ### 回答2: SpringBoot 是一个方便开发的框架,而日志是开发过程中不可或缺的一部分。SpringBoot 默认使用 Logback 作为日志框架,可以通过配置 logback.xml 文件来对日志进行管理。 1. 创建 logback.xml 在 src/main/resources 目录下创建 logback.xml 文件,并在其中配置日志输出的格式、存储位置等内容。 2. 配置 logback.xml配置文件中,可以定义多个不同的日志输出器,每个输出器可以针对不同的日志级别进行输出。这些输出器可以写入控制台、文件等不同的地方。在配置文件中还可以定义日志的格式、输出方式等细节。 例如,我们可以使用如下的配置输出 INFO 级别以上的日志信息: ``` <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-M-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern> <charset>utf8</charset> </encoder> </appender> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{yyyy-M-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>utf8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>./logs/log.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>100MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>2GB</totalSizeCap> </rollingPolicy> </appender> <logger name="org.example" level="info" additivity="false"> <appender-ref ref="file"/> </logger> <root level="info"> <appender-ref ref="console" /> </root> </configuration> ``` 在该配置文件中,我们定义了两个输出器:console 和 file。其中 console 输出器将日志信息输出到控制台,file 输出器将日志信息输出到指定的文件中。 我们还定义了一个 logger,用于指定指定 org.example 下的日志输出到 file 输出器中,并且只输出 info 级别以上的日志信息。 最后,我们在根节点中指定了 console 输出器,这样系统中所有的日志信息都将输出到控制台。 3. 配置 SpringBootSpringBoot 中,我们可以通过 application.properties 或 application.yaml 文件来配置日志的相关内容。 例如,我们可以使用如下的配置文件来指定日志文件输出的位置: ``` logging.file=./logs/my.log ``` 此时 SpringBoot 会使用 logback.xml 配置文件中的 file 输出器将日志信息输出到指定的文件中。 4. 指定日志级别 在 SpringBoot 中,只有在指定了合适的日志级别之后,才会输出相应级别的日志信息。我们可以通过在 application.properties 中指定 logging.level.包名=日志级别 来设置对应包的日志级别。例如,我们可以使用如下的配置文件来指定 org.example 包的日志级别为 info: ``` logging.level.org.example=info ``` 此时 SpringBoot 会将 org.example 包及其子包中所有的日志信息只输出 info 级别及以上的日志信息。 以上就是 SpringBoot 配置 logback.xml 的主要内容。通过合理的配置,我们可以方便地控制日志的输出,以便更好地进行系统调试和问题排查。 ### 回答3: SpringBoot是一个非常流行的Java框架,它可以大大简化我们的Java开发,提高开发效率和代码质量。在Java开发过程中,我们需要使用日志来记录系统运行时的重要信息,以便随时查看系统的运行情况。Logback是一个优秀的日志框架,它能够提供强大的日志管理功能。在SpringBoot中,我们可以使用Logback来记录系统日志信息。 首先,我们需要在pom.xml文件中添加logbacklogback-classic的依赖,如下所示: ``` <!-- logback依赖 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> ``` 接着,我们需要在src/main/resources目录下创建一个logback.xml文件,来配置LogbackLogback日志配置可以分为3部分,分别是:Logger、Appender、Layout。Logger设置日志级别和使用的Appender,Appender设置输出目标和输出格式,Layout设置输出格式。 下面是一个简单的logback.xml文件的配置例子: ``` <configuration> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="consoleAppender" /> </root> </configuration> ``` 这个配置示例中只有一个Appender,它是一个控制台输出的Appender,每行日志输出格式为日期、线程、日志级别、logger名、日志消息。 最后,我们需要在Java代码中使用Logger输出日志信息。我们可以通过扩展org.slf4j.Logger接口的技术来使用Logback实现日志记录,如下所示: ``` import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Example { private static final Logger LOGGER = LoggerFactory.getLogger(Example.class); public void exampleMethod() { LOGGER.info("This is an info message."); LOGGER.debug("This is a debug message."); LOGGER.error("This is an error message."); } } ``` 通过以上配置和使用,我们就可以在SpringBoot应用程序中使用Logback来管理日志信息了。当我们遇到问题时,查看日志信息就可以快速地定位到问题所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值