`

【Logback】文件配置

 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration>
	<contextName>service</contextName>
	<property name="logback.context" value="logs-service" />
	<property name="logback.path" value="${logback.context}" />
	<property name="logback.additivity" value="true" />
	<property name="logback.pattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}][%thread] %level - %class.%M:%line - %msg%n" />
	
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
		<encoder>
			<charset>UTF-8</charset> 
			<pattern>${logback.pattern}</pattern>
			<!-- 常用的Pattern变量,大家可打开该pattern进行输出观察 -->
			<!-- <pattern> %d{yyyy-MM-dd HH:mm:ss} [%level] - %msg%n Logger: %logger 
				Class: %class File: %file Caller: %caller Line: %line Message: %m Method: 
				%M Relative: %relative Thread: %thread Exception: %ex xException: %xEx nopException: 
				%nopex rException: %rEx Marker: %marker %n </pattern> -->
		</encoder>
	</appender>
    
    <appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高, 所以我们使用下面的策略,可以避免输出 Error的日志-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!--过滤 Error-->
            <level>ERROR</level>
        </filter>
        <File>${logback.path}/errors/${logback.context}_error.log</File>
        <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
            <FileNamePattern>${logback.path}/error-logs/${logback.context}-%d{yyyy-MM-dd}_error_%i.log</FileNamePattern>
            <!-- 单个日志文件最多 100MB -->
            <maxFileSize>100MB</maxFileSize>
            <!--只保留最近30天的日志-->
            <maxHistory>30</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <!--<totalSizeCap>1GB</totalSizeCap>-->
        </rollingPolicy>
        <!--日志输出编码格式化-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${logback.pattern}</pattern>
        </encoder>
    </appender>
    
    <appender name="ALL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    	<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!--过滤 Error-->
            <level>DEBUG</level>
        </filter>
        <File>${logback.path}/${logback.context}.log</File>
        <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
            <FileNamePattern>${logback.path}/${logback.context}-%d{yyyy-MM-dd}_%i.log</FileNamePattern>
            <!-- 单个日志文件最多 100MB -->
            <maxFileSize>100MB</maxFileSize>
            <!--只保留最近30天的日志-->
            <maxHistory>30</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <!--<totalSizeCap>1GB</totalSizeCap>-->
        </rollingPolicy>
        <!--日志输出编码格式化-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${logback.pattern}</pattern>
        </encoder>
    </appender>
    
    <logger name="org.springframework" level="ERROR"></logger>
    <logger name="org.apache" level="ERROR"/>
    <logger name="java.sql" level="ERROR"/>
    <logger name="com.netflix" level="ERROR"/>
    <logger name="com.baomidou.mybatisplus" level="ERROR"/>
    <logger name="org.springframework.cloud.stream.binder.kafka" level="ERROR"/>
    <logger name="org.springframework.core.env" level="ERROR"/>
    <logger name="org.mybatis" level="ERROR"/>
    <logger name="org.hibernate.validator" level="ERROR"/>
    <logger name="org.apache.kafka.common.config" level="INFO"/>

	<!-- additivity:是否向root传递日志 -->
	<springProfile name="pro">
		<property name="logback.level" value="INFO" />
		<root level="${logback.level}">
			<!-- <appender-ref ref="STDOUT" /> -->
	      	<appender-ref ref="ALL_LOG"/>
		</root>
	</springProfile>

	<springProfile name="test">
		<property name="logback.level" value="DEBUG" />
		<root level="${logback.level}">
			<!-- <appender-ref ref="STDOUT" /> -->
	      	<appender-ref ref="ALL_LOG"/>
		</root>
	</springProfile>

	<springProfile name="dev">
		<property name="logback.level" value="DEBUG" />
		<logger name="com.app" level="${logback.level}" additivity="${logback.additivity}"></logger>
		<root level="${logback.level}">
			<appender-ref ref="STDOUT" />
	      	<appender-ref ref="ALL_LOG"/>
		</root>
	</springProfile>
	<!-- 未配置spring.profiles -->
	<springProfile name="default">
		<property name="logback.level" value="INFO" />
		<logger name="com.app" level="${logback.level}" additivity="${logback.additivity}"></logger>
		<root level="${logback.level}">
			<appender-ref ref="STDOUT" />
	      	<appender-ref ref="ALL_LOG"/>
		</root>
	</springProfile>
</configuration>


 

分享到:
评论

相关推荐

    LogBack配置文件

    LogBack配置文件,主要包括LOGBack的配置文件内容

    logback配置文件

    logback学习使用的配置文件,logback入门使用配置

    Logback类库含logback.xml配置文件

    学习 Logback 包括理解如何配置 `logback.xml` 文件以满足项目需求,如何在代码中使用 SLF4J API 来记录日志,以及如何管理和优化日志输出,比如控制日志文件大小、滚动策略等。对于 Java 开发者来说,熟练掌握 ...

    logback jar包和logback.xml配置文件打包下载 小白新手学Java

    在这里,我们关注的是SLF4J的API库`slf4j-api-1.7.26.jar`,以及Logback的两个核心组件`logback-core-1.2.3.jar`和`logback-classic-1.2.3.jar`,以及配置文件`logback.xml`。 首先,`slf4j-api-1.7.26.jar`是SLF4J...

    springboot整合logback配置文件

    springboot整合logback配置文件

    logbackーslf4j-配置文件实例 难得

    **Logback-SLF4J配置文件详解** 在Java开发中,日志管理是不可或缺的一部分,Logback和SLF4J(Simple Logging Facade for Java)是广泛使用的日志框架。SLF4J提供了一个接口层,允许开发者选择任何底层的日志实现,...

    logback日志配置demo

    总结来说,`logback` 是一个强大的日志框架,通过配置 `logback.xml` 文件,我们可以控制日志记录的方方面面,包括日志级别、输出目的地、格式和过滤规则。在实际项目中,合理地配置 logback 能够帮助我们更好地管理...

    项目中在使用的logback配置文件

    项目中在使用的logback,拿过去直接可以用,带完整的中文说明。

    logback-slf4j日志配置文件-下载即可使用

    "logback-slf4j日志配置文件下载即可使用" logback-slf4j是Java领域中一种常用的日志记录解决方案,它通过结合slf4j(Simple Logging Facade for Java)来提供了异步日志输出的功能,能够将日志输出到不同的文件中...

    springboot-logback配置

    springboot-logback日志文件配置

    logback下载 日志文件jar包

    这个压缩包包含了实现 Logback 功能所需的几个关键组件,以及一个配置文件,使得用户能够方便地管理和记录应用程序的日志信息。 1. **logback-core-1.2.3.jar**: 这是 Logback 的核心库,包含了日志记录的基本...

    logback配置详解

    logback 的默认配置如果配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默认地会调用 BasicConfigurator,创建一个最小化配置。最小化配置由一个关联到根 logger 的 ConsoleAppender 组成。输出...

    logback日志配置

    Logback 使用 XML 文件来配置日志行为,主要配置文件为 `logback.xml`。下面对题目中给出的配置文件进行详细解析: ```xml &lt;!-- 控制台输出 --&gt; &lt;appender name="console" class="ch.qos.logback.core....

    logback配置文件解析和示例

    该文件包含logback配置文件示例和配置文件内容解析,如果想深入学习的系哦小伙伴可以下载看看,如果只是想实现功能,可以查看我的博客 《整合篇------JAVA项目整合Logback》

    logback的配置文件(转)

    logback的配置文件(转),看起来比较详细... 反正我觉得我有用

    Logback配置文件根据 LEVEL级别将日志分类保存到不同文件.docx

    《Logback配置文件根据LEVEL级别将日志分类保存到不同文件》 日志管理是软件开发中的重要一环,它能帮助开发者追踪程序运行状态,定位问题,优化性能。Logback是一个广泛使用的日志框架,它允许我们高效地处理日志...

    基于Java的Mybatis源代码学习与logback日志配置文件配置技巧

    本项目深入研究了Java框架Mybatis的源代码,并针对logback日志配置文件进行了详细的学习与实践。项目文件包含24个文件,涵盖了10个Java源文件、7个XML配置文件、4个YAML文件、2个Markdown文件、1个Git忽略文件,旨在...

    logback1.1.2配置事例

    `logback.xml` 是 XML 格式的配置文件,是 logback 默认的配置方式。这个文件定义了日志的级别(TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF),日志输出的目标(控制台、文件、数据库等)以及日志格式。 例如,...

Global site tag (gtag.js) - Google Analytics