iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Springboot如何使用Logback实现日志配置
  • 422
分享到

Springboot如何使用Logback实现日志配置

2023-07-04 15:07:32 422人浏览 安东尼
摘要

这篇文章主要讲解了“SpringBoot如何使用Logback实现日志配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot如何使用Logback实现日志配置”吧!概述默认情

这篇文章主要讲解了“SpringBoot如何使用Logback实现日志配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot如何使用Logback实现日志配置”吧!

概述

默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。如果在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格式等。复杂的场景(区分 info 和 error 的日志、每天产生一个日志文件等)满足不了,只能自定义配置文件logback-spring.xml或者logback.xml。

logback配置详解

首先我们先了解下logback。

logback 主要分为三个模块:

  • logback-core:是其他两个模块的基础模块

  • logback-classic:是对 core 模块的扩展,相当于 log4j 的改良版。classic 模块实现了 Slf4j 的 api 因此可以便于和其他日志框架直接切换

  • logback-access:与Servlet容器集成,以提供Http访问日志功能。

logback配置

application .properties

# 日志打印信息配置
logging.config=classpath:logback-spring.xml

logback-spring.xml

<?mybatis version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug="false">    <contextName>logback</contextName>    <!--输出到控制台-->    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">        <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">             <level>ERROR</level>         </filter>-->        <encoder>            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>        </encoder>    </appender>    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件会滚动 -->        <!-- 文件路径 -->        <file>./logs/gf_scanning.log</file><!-- 当前的日志文件存放路径 -->        <!-- 日志滚动策略 -->        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!-- 历史日志文件的存放路径和名称 -->            <fileNamePattern>./logs/gf_scanning.%d{yyyy-MM-dd}.%i.log</fileNamePattern>            <!-- 日志文件最大的保存历史 数量-->            <maxHistory>30</maxHistory>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>10MB</maxFileSize>            </timeBasedFileNamingAndTriggeringPolicy>        </rollingPolicy>        <encoder>            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> <!-- 日志文件中日志的格式 -->        </encoder>    </appender>    <root level="info">        <appender-ref ref="console"/>        <appender-ref ref="file"/>    </root></configuration>

异常情况

遇到个奇怪的问题,按上述配置完成logback的配置后,大多项目可以正常运行并保存日志到文件,但有一个项目启动时报错。java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-spring.xml ... Caused by: ch.qos.logback.core.joran.spi.JoranException: Parser configuration error occurred

Logging system failed to initialize using configuration from 'classpath:logback-spring.xml'
java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-spring.xml
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:168)
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66)
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
    at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:316)
    at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)
    at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)
    at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
    at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:339)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:297)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
    at cn.piesat.ScanningApplication.main(ScanningApplication.java:18)
Caused by: ch.qos.logback.core.joran.spi.JoranException: Parser configuration error occurred
    at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:89)
    at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:57)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
    at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:188)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:165)
    ... 22 more
Caused by: org.xml.sax.SAXNotSupportedException: Feature: http://xml.org/sax/features/external-general-entities
    at org.apache.crimson.parser.XMLReaderImpl.setFeature(XMLReaderImpl.java:211)
    at org.apache.crimson.jaxp.SAXParserImpl.setFeatures(SAXParserImpl.java:143)
    at org.apache.crimson.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:126)
    at org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:113)
    at org.apache.crimson.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:141)
    at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:82)
    ... 28 more
Disconnected from the target VM, address: '127.0.0.1:64222', transport: 'Socket'

Process finished with exit code 1

可能是由于jar包冲突,在pom文件中单独引入logback-core的依赖后,问题解决。

<!-- logback 日志 --><dependency>    <groupId>ch.qos.logback</groupId>    <artifactId>logback-core</artifactId>    <version>1.1.7</version></dependency><dependency>    <groupId>ch.qos.logback</groupId>    <artifactId>logback-classic</artifactId>    <version>1.1.7</version>    <exclusions>        <exclusion>            <groupId>ch.qos.logback</groupId>            <artifactId>logback-core</artifactId>        </exclusion>    </exclusions></dependency>

感谢各位的阅读,以上就是“Springboot如何使用Logback实现日志配置”的内容了,经过本文的学习后,相信大家对Springboot如何使用Logback实现日志配置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Springboot如何使用Logback实现日志配置

本文链接: https://www.lsjlt.com/news/346076.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot如何使用Logback实现日志配置
    这篇文章主要讲解了“Springboot如何使用Logback实现日志配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot如何使用Logback实现日志配置”吧!概述默认情...
    99+
    2023-07-04
  • Springboot使用Logback实现日志配置与异常记录
    目录概述logback配置详解logback配置异常情况概述 默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。如果...
    99+
    2022-11-21
    Springboot Logback 日志配置 Springboot Logback异常记录 Springboot Logback
  • springboot项目配置logback日志系统的实现
    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖j...
    99+
    2022-11-12
  • springboot如何使用logback-spring配置日志格式,并分环境配置
    配置不生效的解决办法 注意:如果配置不生效,则说明spring优先加载了其他配置: 解决办法: 添加启动参数 -Dlogging.config=classpath:logb...
    99+
    2022-11-12
  • springboot项目配置logback日志系统的实现示例
    这篇文章主要介绍了springboot项目配置logback日志系统的实现示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。记录springboot项目配置logback日志...
    99+
    2023-06-14
  • springboot怎么使用logback-spring配置日志格式,并分环境配置
    这篇文章主要介绍了springboot怎么使用logback-spring配置日志格式,并分环境配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。配置不生效的解决办法注意:如...
    99+
    2023-06-20
  • 在Spring Boot中使用slf4j与logback如何实现配置日志
    这期内容当中小编将会给大家带来有关在Spring Boot中使用slf4j与logback如何实现配置日志,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。spring boot主要的目的是:为 Spring...
    99+
    2023-05-31
    springboot slf4j logback
  • Springboot如何使用logback实现多环境配置?
    前言 Logback是由log4j创始人设计的又一个开源日记组件,Logback 当前分成三个模块:logback-core,logback- classic和logback-ac...
    99+
    2022-11-12
  • 如何使用logback实现日志打印过滤
    这篇文章主要为大家展示了“如何使用logback实现日志打印过滤”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用logback实现日志打印过滤”这篇文章吧。logback日志打印过滤1.只...
    99+
    2023-06-20
  • 使用logback实现日志打印过滤
    logback日志打印过滤 1.只打印sql语句以及参数 <?xml version="1.0" encoding="UTF-8" ?> <co...
    99+
    2022-11-12
  • SpringBoot彩色日志如何配置
    本文小编为大家详细介绍“SpringBoot彩色日志如何配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot彩色日志如何配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。SpringBoot彩...
    99+
    2023-07-05
  • 解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题
    application.properties 加入以下配置 #logback home logging.path=D:/logs/esb-producer logback.x...
    99+
    2022-11-12
  • dubbo 如何使用logback来输出日志
    dubbo logback输出日志 两者皆为国内使用比较广的两个开源框架:一个是服务治理框架,另一个则是日志框架。这个问题的解决方案一部分就在dubbo官网上: dubbo的日志适配...
    99+
    2022-11-12
  • 如何在logback日志配置里获取服务器ip和端口
    目录logback日志配置获取服务器ip和端口1、新建一个类继承ClassicConverter2、在配置文件logback.xml增加如下配置3、在需要用到ip的位置这样写: %i...
    99+
    2022-11-12
  • 如何使用Nginx纯配置实现日志实时上报
    这篇文章主要为大家展示了“如何使用Nginx纯配置实现日志实时上报”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Nginx纯配置实现日志实时上报”这篇文章吧。前言Nginx 作为常用的负...
    99+
    2023-06-22
  • Logback的使用及如何配置
    目录1 为什么选用Logback?2 Logback的配置3 Logback的输出格式4 Appender5 Logback使用过程中遇到的问题日志在项目开发过程的作用不言而喻,项目...
    99+
    2022-11-12
  • SpringBoot(项目创建使用+配置文件+日志文件)
    目录 1. Spring Boot 项目创建 2. 写一个 Hello World 并运行 3. 配置文件的作用及格式 4. properties 配置文件的基本语法  5. 读取配置文件 6. yml 配置文件说明 7. properti...
    99+
    2023-08-31
    spring boot java spring
  • 如何实现Spark on Yarn配置日志Web UI
    本篇文章为大家展示了如何实现Spark on Yarn配置日志Web UI,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.进入spark目录和配置文件 [root@sht-sgmhadoopnn-...
    99+
    2023-06-03
  • Spring Boot如何使用logback、logstash、ELK记录日志文件
    这篇文章主要介绍Spring Boot如何使用logback、logstash、ELK记录日志文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring Boot 下,尝试使用 log4j 记录日志到 logst...
    99+
    2023-05-30
    logback logstash spring
  • PHP错误日志如何配置和使用
    小编给大家分享一下PHP错误日志如何配置和使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对于 PHP 开发者来说,一旦某个项目投入使用,应该立即将配置文件 p...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作