`

springboot集成logback

 
阅读更多
https://blog.csdn.net/hry2015/article/details/57410727

slf4j和logback区别:

概念:

slf4j是java的一个日志门面,实现了日志框架一些通用的api;

logback是具体的日志框架。它和log4j是同一个作者,他是为了解决log4j存在的问题而开发的新的日志框架。

slf4j和logback可以简单的看作jdbc和其具体数据库的JDBC的jar包的关系。

推荐使用slf4j,而不是直接使用logback:

slf4j的用法:


[html] view plain copy
log.info("Begin Start {}...{}", str1, str2); 
logback

[html] view plain copy
log.info("Begin Start " + str1 +"..." + str2); 
如上,sl4j无论是写法和性能都比logback要强

spring boot 集成日志

POM.xml

引入logback和slf4j依赖jar包


[html] view plain copy
<dependency>   
   <groupId>ch.qos.logback</groupId>   
   <artifactId>logback-classic</artifactId>   
</dependency> 
<dependency>                                     
    <groupId>org.slf4j</groupId>                 
    <artifactId>jcl-over-slf4j</artifactId>      
</dependency> 
logback-spring.xml

[html] view plain copy
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
     
    <!--定义日志文件的存储地址 勿在 LogBack的配置中使用相对路径 --> 
    <property name="LOG_HOME" value="/tmp/log" /> 
 
    <!-- 控制台输出 --> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n</pattern> 
        </encoder> 
    </appender> 
 
    <!-- 按照每天生成日志文件 --> 
    <appender name="FILE" 
        class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
            <FileNamePattern>${LOG_HOME}/logs/smsismp.log.%d{yyyy-MM-dd}.log</FileNamePattern> 
            <!--日志文件保留天数 --> 
            <MaxHistory>30</MaxHistory> 
        </rollingPolicy> 
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n</pattern> 
        </encoder> 
        <!--日志文件最大的大小 --> 
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
            <MaxFileSize>10MB</MaxFileSize> 
        </triggeringPolicy> 
    </appender> 
      
    <!-- 日志输出级别 --> 
    <root level="INFO"> 
        <appender-ref ref="STDOUT" /> 
        <appender-ref ref="FILE" /> 
    </root> 
 
    <!-- 定义各个包的详细路径,继承root宝的值 --> 
    <logger name="com.hry.spring.log" level="INFO" /> 
    <logger name="com.hry.spring" level="TRACE" /> 
     
    <!-- 此值由 application.properties的spring.profiles.active=dev指定--> 
    <springProfile name="dev"> 
        <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --> 
        <property name="LOG_HOME" value="/tmp/log" /> 
        <logger name="org.springboot.sample" level="DEBUG" /> 
    </springProfile> 
 
    <springProfile name="pro"> 
        <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --> 
        <property name="LOG_HOME" value="/home" /> 
        <logger name="org.springboot.sample2" level="INFO" /> 
    </springProfile> 
     
</configuration> 
appender name="STDOUT": 日志打印到控制台

appender name="FILE": 日志按日打印到文件中,最多保留MaxHistory天,每个文件大水为MaxFileSize

encoder:定义输出格式

%d{HH:mm:ss.SSS}——日志输出时间

%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用

%-5level——日志级别,并且使用5个字符靠左对齐

%logger{36}——日志输出者的名字

%msg——日志消息

%n——平台的换行符

<root level="INFO">: 定义根logger,通过appender-ref指定前方定义的appender

<logger name="com.hry.spring.log" level="INFO" />:在继承root的logger上对com.hry.spring.log包日志作特殊处理

<springProfile name="dev">: 定义profile的值,只有特定profile的情况下,此间定义的内容才启作用



application.properties


[html] view plain copy
server.port=8080 
spring.profiles.active=dev 
spring.profiles.active指定本次启动的active的值是什么。本次是dev,则logback-spring.xml里<springProfile name="dev">的内容启作用


用法:


[java] view plain copy
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
 
@SpringBootApplication 
public class LogApplication { 
    private static final Logger log = LoggerFactory.getLogger(LogApplication.class); 
    public static void main(String[] args) { 
        String str1 = "string1"; 
        String str2 = "string2"; 
        log.info("Begin Start {}...{}", str1, str2); 
        SpringApplication.run(LogApplication.class, args); 
        log.info("Stop ..."); 
    } 

分享到:
评论

相关推荐

    springboot、logback源码解读

    Spring Boot与Logback源码解读涉及了Spring Boot框架在启动过程中如何与Logback日志系统集成,以及Logback是如何进行初始化和配置的。下面将详细解读Logback和Spring Boot的相关知识点。 ### Logback初始化过程 ...

    clickhouse+springboot+logback的Demo

    通过这个Demo,开发者可以学习如何在SpringBoot应用中集成ClickHouse,实现高效的数据存储和查询,同时利用Logback进行日志记录,为大数据项目提供一个稳定、可扩展的基础架构。这个模板对于初学者和经验丰富的...

    SpringBoot-logback

    首先,让我们深入了解SpringBoot与Logback的集成。SpringBoot默认支持Logback作为日志系统。在`pom.xml`文件中,你需要添加Logback的依赖项,确保如下所示: ```xml &lt;groupId&gt;ch.qos.logback &lt;artifactId&gt;...

    SpringBoot中logback日志保存到mongoDB的方法

    logback是 SpringBoot默认集成的日志框架,它相对来说是优秀于log4j的。 在logback中,Appender是日志输出的关键组件,自定义Appender非常简单,继承一下AppenderBase类即可。AppenderBase类有三个子类:...

    SpringBoot Logback配置,SpringBoot日志配置

    通过上述介绍,我们可以看出Spring Boot与Logback的集成使得日志管理变得简单而强大。开发者可以根据需求定制化日志配置,以实现最佳的日志记录效果。对于大型项目,合理的日志配置是监控系统健康状况、定位问题的...

    SpringBoot之logback-spring.xml不生效的解决方法

    当使用logback作为日志框架时,通常我们会将配置文件放在`src/main/resources`目录下,命名为`logback-spring.xml`,这是因为Spring Boot默认支持`logback-spring.xml`,它能与Spring的自动配置机制集成。...

    springboot整合logback保存日志到文件

    Spring Boot默认集成了Logback作为日志处理系统,因为它提供高效的日志记录能力并易于配置。本篇将详细介绍如何在Spring Boot项目中整合Logback,实现日志的持久化保存到文件。 1. **添加依赖** 首先,我们需要在...

    springboot - 2.7.3版本 - (五)整合Elasticsearch+Logstash+Kibana(ELK)

    在本文中,我们将深入探讨如何使用Spring Boot 2.7.3版本与Elasticsearch、Logstash和Kibana(通常称为ELK Stack)进行集成,以便高效地收集、存储和分析应用程序日志。ELK Stack是日志管理和监控的强大工具,其中...

    logback+springboot的基本使用方式.zip

    集成Logback的关键在于配置文件`logback.xml`。这个XML文件定义了日志输出的级别、格式、目标等。在`spring-boot-starter-web`起步依赖中,已经包含了对Logback的支持,因此我们只需要创建或提供自定义的`logback....

    springboot 集成dubbo,redis,mybatis,logback,aop(aspect)注解,小demo

    此小demo是springboot集成dubbo,redis,mybatis,logbakc,aspect,等框架,利用Configuration配置,摆脱了xml形式的配置文件,实现springboot微服务,

    SpringBoot之LogBack配置详解

    SpringBoot之LogBack配置详解 LogBack是基于Slf4j的日志框架,默认集成在Spring Boot中。默认情况下,Spring Boot是以INFO级别输出到控制台。LogBack的日志级别是:ALL 。 配置LogBack可以直接在application....

    浅谈spring boot 集成 log4j 解决与logback冲突的问题

    现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。 首先在pox.xml中引入对应的maven依赖: &lt;!-- 引入log4j--&gt; &lt;groupId&gt;org.springframework....

    SpringBoot中自定义日志配置logback-spring.xml示例源码

    默认情况下,Spring Boot使用Logback作为其日志系统,因为Logback在性能上优于Log4j,并且与Spring框架有良好的集成。本教程将详细介绍如何在Spring Boot中自定义日志配置,特别是通过`logback-spring.xml`文件来...

    SpringBoot 集成 Jasypt 对数据库加密以及踩坑

    SpringBoot 集成 Jasypt 对数据库加密以及踩坑 SpringBoot 集成 Jasypt 对数据库加密是一个非常重要的安全机制,通过对数据库密码的加密,可以保护数据库的安全,防止未经授权的访问。在本文中,我们将介绍如何在 ...

    Spring Boot异步输出Logback日志方法详解

    3. **logback-access**:与Servlet容器集成,支持通过HTTP访问日志。 日志级别是控制日志输出的关键,包括: 1. **TRACE**:极其详细的运行信息,一般不建议在业务代码中使用,除非有特殊需求。在生产环境中,通常...

    springboot 详细配置logback

    Logback分为三个主要组件:`logback-core`(基础框架)、`logback-classic`(实现了SLF4J API)和`logback-access`(与Servlet容器集成)。 2. **配置文件** Spring Boot中的Logback配置通常位于`src/main/...

    springBoot+druid+mybatis+redis+logback

    在SpringBoot项目中,MyBatis与Spring的集成使得我们可以方便地进行DAO层的开发,实现灵活的数据访问操作,同时保持代码的简洁性。 **Redis** Redis是一个高性能的键值数据库,通常用于缓存和消息中间件。在...

    Spring Boot整合logback一个简单的日志集成架构

    因此,需要更强大、灵活的日志解决方案——logback,它不仅支持日志的分时分类管理,而且与Spring Boot有很好的集成,同时实现了SLF4J(Simple Logging Facade for Java)接口,是log4j的后继产品,提供了更加丰富的...

Global site tag (gtag.js) - Google Analytics