iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot2中如何配置Log4j2实现不同环境日志打印
  • 611
分享到

SpringBoot2中如何配置Log4j2实现不同环境日志打印

2023-06-02 12:06:08 611人浏览 八月长安
摘要

这篇文章主要介绍了SpringBoot2中如何配置Log4j2实现不同环境日志打印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Log4j2日志简介日志打印是了解WEB项

这篇文章主要介绍了SpringBoot2中如何配置Log4j2实现不同环境日志打印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、Log4j2日志简介

日志打印是了解WEB项目运行的最直接方式,所以在项目开发中是需要首先搭建好的环境。

1、Log4j2特点

1)核心特点
相比与其他的日志系统,log4j2丢数据这种情况少;disruptor技术,在多线程环境下,性能高;并发的特性,减少了死的发生。

2)性能测试
SpringBoot2中如何配置Log4j2实现不同环境日志打印

SpringBoot2中如何配置Log4j2实现不同环境日志打印

2、日志打印之外观模式

每一种日志框架都有自己单独的api,要使用对应的框架就要使用其对应的API,增加应用程序代码和日志框架的耦合性。
《阿里巴巴Java开发手册》,其中有一条规范做了『强制』要求:

SpringBoot2中如何配置Log4j2实现不同环境日志打印

SLF4J
Java简易日志门面(Simple Logging Facade for Java,缩写SLF4J),是一套包装Logging 框架的界面程式,以外观模式实现。

二、配置日志打印

1、项目结构

SpringBoot2中如何配置Log4j2实现不同环境日志打印

2、不同环境的日志配置

使用最直接的方式,不同环境加载不同的日志配置。
1)开发环境配置

logging:  config: classpath:log4j2-boot-dev.xml

2)生产环境配置

logging:  config: classpath:log4j2-boot-pro.xml

3、Log4j2的配置文件

<?xml version="1.0" encoding="UTF-8"?><!--monitorInterval:Log4j2 自动检测修改配置文件和重新配置本身,设置间隔秒数--><configuration monitorInterval="5">    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->    <!--变量配置-->    <Properties>        <!-- 格式化输出:            %date表示日期,%thread表示线程名,            %-5level:级别从左显示5个字符宽度            %msg:日志消息,%n是换行符-->        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />        <!-- 定义日志存储的路径,不要配置相对路径 -->        <property name="FILE_PATH" value="E:/logs/dev" />        <property name="FILE_NAME" value="boot-log4j2" />    </Properties>    <appenders>        <console name="Console" target="SYSTEM_OUT">            <!--输出日志的格式-->            <PatternLayout pattern="${LOG_PATTERN}"/>            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>        </console>        <!--文件会打印出所有信息-->        <File name="Filelog" fileName="${FILE_PATH}/log4j2.log" append="true">            <PatternLayout pattern="${LOG_PATTERN}"/>        </File>        <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>            <PatternLayout pattern="${LOG_PATTERN}"/>            <Policies>                <!--interval属性用来指定多久滚动一次,默认是1 hour-->                <TimeBasedTriggeringPolicy interval="1"/>                <SizeBasedTriggeringPolicy size="10MB"/>            </Policies>            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖-->            <DefaultRolloverStrategy max="15"/>        </RollingFile>        <!-- 这个会打印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->        <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>            <PatternLayout pattern="${LOG_PATTERN}"/>            <Policies>                <!--interval属性用来指定多久滚动一次,默认是1 hour-->                <TimeBasedTriggeringPolicy interval="1"/>                <SizeBasedTriggeringPolicy size="10MB"/>            </Policies>            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖-->            <DefaultRolloverStrategy max="15"/>        </RollingFile>        <!-- 这个会打印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>            <PatternLayout pattern="${LOG_PATTERN}"/>            <Policies>                <!--interval属性用来指定多久滚动一次,默认是1 hour-->                <TimeBasedTriggeringPolicy interval="1"/>                <SizeBasedTriggeringPolicy size="10MB"/>            </Policies>            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖-->            <DefaultRolloverStrategy max="15"/>        </RollingFile>    </appenders>    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->    <loggers>        <!--过滤掉springmybatis的一些无用的DEBUG信息-->        <logger name="org.mybatis" level="info" additivity="false">            <AppenderRef ref="Console"/>        </logger>        <!--监控系统信息-->        <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。-->        <Logger name="org.springframework" level="info" additivity="false">            <AppenderRef ref="Console"/>        </Logger>        <root level="info">            <appender-ref ref="Console"/>            <appender-ref ref="Filelog"/>            <appender-ref ref="RollingFileInfo"/>            <appender-ref ref="RollingFileWarn"/>            <appender-ref ref="RollingFileError"/>        </root>    </loggers></configuration>

三、测试日志打印

1、简单的测试程序

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class Log4j2Controller {    private static final Logger LOGGER = LoggerFactory.getLogger(Log4j2Controller.class);        @RequestMapping("/printLog")    public String printLog (){        LOGGER.error("ERROR 级别日志");        LOGGER.warn("WARN 级别日志");        LOGGER.info("INFO 级别日志");        LOGGER.debug("DEBUG 级别日志");        LOGGER.trace("TRACE 级别日志");        return "success" ;    }}

2、测试效果图

SpringBoot2中如何配置Log4j2实现不同环境日志打印

感谢你能够认真阅读完这篇文章,希望小编分享的“SpringBoot2中如何配置Log4j2实现不同环境日志打印”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: SpringBoot2中如何配置Log4j2实现不同环境日志打印

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

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

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

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

下载Word文档
猜你喜欢
  • SpringBoot2中如何配置Log4j2实现不同环境日志打印
    这篇文章主要介绍了SpringBoot2中如何配置Log4j2实现不同环境日志打印,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、Log4j2日志简介日志打印是了解Web项...
    99+
    2023-06-02
  • Log4j如何配置日志打印时区
    小编给大家分享一下Log4j如何配置日志打印时区,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!og4j版本:2.8.1开发桌面程序时遇到一个问题,idea中日志时间和CMD中jar包运行日志时间都正常,使用exe4j打成的...
    99+
    2023-05-30
  • 如何解决springboot log4j2不能打印框架错误日志的问题
    这篇文章主要介绍如何解决springboot log4j2不能打印框架错误日志的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!springboot log4j2为什么不能打印框架错误日志问题使用springboo...
    99+
    2023-06-20
  • vue3不同环境下实现配置代理
    目录不同环境下如何配置代理第一种情况第二种情况Vue设置本地代理本地安装Whistle谷歌浏览器安装Proxy SwitchyOmega扩展浏览器操作不同环境下如何配置代理 实际开发...
    99+
    2024-04-02
  • vue中不同环境配置不同的打包命令有哪些
    小编给大家分享一下vue中不同环境配置不同的打包命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近做的一个项目是配置了...
    99+
    2024-04-02
  • 如何使用logback实现日志打印过滤
    这篇文章主要为大家展示了“如何使用logback实现日志打印过滤”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用logback实现日志打印过滤”这篇文章吧。logback日志打印过滤1.只...
    99+
    2023-06-20
  • SpringBoot 如何通过 Profile 实现不同环境下的配置切换
    目录一、搭建工程二、多文件配置方式三、多片段配置方式四、使用外部配置文件SpringBoot 通过 profile 实现在不同环境下的配置切换,比如常见的开发环境、测试环境、生产环境...
    99+
    2022-11-13
    SpringBoot 配置切换 SpringBoot  Profile配置切换
  • springboot如何使用logback-spring配置日志格式,并分环境配置
    配置不生效的解决办法 注意:如果配置不生效,则说明spring优先加载了其他配置: 解决办法: 添加启动参数 -Dlogging.config=classpath:logb...
    99+
    2024-04-02
  • SpringMVC框架中如何使用Filter实现请求日志打印
    这篇文章主要为大家展示了“SpringMVC框架中如何使用Filter实现请求日志打印”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringMVC框架中如何使用Filter实现请求日志打印”...
    99+
    2023-06-25
  • Python日志该如何实现,与npm有何不同?
    在软件开发中,日志是一项非常重要的功能。它可以记录应用程序的运行状态、错误信息和调试信息等。Python和npm都提供了日志功能,但实现方式有所不同。本文将介绍Python日志的实现方法,并对比npm的实现方式。 Python日志的实现 ...
    99+
    2023-08-23
    日志 npm linux
  • java如何实现统一打印入参出参等日志
    这篇文章主要介绍“java如何实现统一打印入参出参等日志”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java如何实现统一打印入参出参等日志”文章能帮助大家解决问题。1.背景   ...
    99+
    2023-07-05
  • vue中axios如何给生产环境和发布环境配置不同的接口地址
    这篇文章主要介绍了vue中axios如何给生产环境和发布环境配置不同的接口地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、设置不同的接...
    99+
    2024-04-02
  • Springboot如何使用Logback实现日志配置
    这篇文章主要讲解了“Springboot如何使用Logback实现日志配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot如何使用Logback实现日志配置”吧!概述默认情...
    99+
    2023-07-04
  • 如何在PHP中实现同步Shell日志?
    PHP是一种广泛使用的编程语言,它可以用于开发各种类型的应用程序,包括Web应用程序和命令行应用程序。在开发命令行应用程序时,经常需要使用Shell命令来执行系统级任务。这些任务可能需要花费一定的时间来完成,因此需要在应用程序中实现同步Sh...
    99+
    2023-08-18
    同步 shell 日志
  • Log4j2如何在Spring Boot中实现配置并使用
    这篇文章将为大家详细讲解有关 Log4j2如何在Spring Boot中实现配置并使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Spring Boot 可以集成很多不同的日志系统,其中最...
    99+
    2023-05-31
    springboot log4j
  • VS2019中.NET如何实现打日志功能
    目录1:首先安装插件2:添加对应的配置文件 3:在生成的AssemblyInfo类中填写如下代码4:添加打印日志的类,这里的方法你可以根据自己的需要写5:在报异常的地方或者...
    99+
    2024-04-02
  • 如何实现Spark on Yarn配置日志Web UI
    本篇文章为大家展示了如何实现Spark on Yarn配置日志Web UI,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.进入spark目录和配置文件 [root@sht-sgmhadoopnn-...
    99+
    2023-06-03
  • vue+axios如何给开发环境和生产环境配置不同的接口地址
    这篇文章给大家分享的是有关vue+axios如何给开发环境和生产环境配置不同的接口地址的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为什么要配置不同的接口地址在开发过程中,前端请...
    99+
    2024-04-02
  • Pycharm配置远程SSH服务器实现(切换不同虚拟环境)
    1.首先在Xshell上通过conda创建新的虚拟环境 2.此时在 /home/y210101004/.conda/envs下多了刚刚创建的环境的文件夹 3.路径说明!...
    99+
    2023-02-21
    Pycharm配置远程SSH服务器 Pycharm切换不同虚拟环境
  • Springboot如何使用logback实现多环境配置?
    前言 Logback是由log4j创始人设计的又一个开源日记组件,Logback 当前分成三个模块:logback-core,logback- classic和logback-ac...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作