返回顶部
首页 > 资讯 > 精选 >SpringBoot log打印及输出方式是什么
  • 675
分享到

SpringBoot log打印及输出方式是什么

2023-06-25 16:06:35 675人浏览 八月长安
摘要

这篇文章主要介绍“SpringBoot log打印及输出方式是什么”,在日常操作中,相信很多人在springBoot log打印及输出方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoo

这篇文章主要介绍“SpringBoot log打印及输出方式是什么”,在日常操作中,相信很多人在springBoot log打印及输出方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot log打印及输出方式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

SpringBoot log打印及输出

导入jar

import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;

代码示例

private final Log log = LogFactory.getLog(AppController.class); //AppController.class为当前class文件,后台会输出这个class文件的log
String input = "%CN%";this.log.info(input);

后台输出日志如下:

SpringBoot log打印及输出方式是什么

日志输出配置

在application.yml文件中添加配置

logging:  path: D:\spring-boot-log   //自定义输出日志的地址

springboot切面技术打印log日志

项目的部分功能需要新增加日志的操作记录,想了一圈还是使用切面技术比较方便解决。 相当于代理,感觉比代理更牛逼。

说一下关键词 自己理解的。

  • @Aspect:把当前类搞成一个切面类,提供容器读取

  • @Pointcut:定义切点,扫描那个包下面的那个类,具体到那个方法。

  • @Around:环绕增强,相当于MethodInterceptor

  • @AfterReturning:后置增强,相当于AfterReturningAdvice,方法正常退出时执行

  • @Before:标识一个前置增强方法,相当于BeforeAdvice的功能,相似功能的还有

  • @AfterThrowing:异常抛出增强,相当于ThrowsAdvice

  • @After:final增强,不管是抛出异常或者正常退出都会执行

mvaen 准备 还有spring家族的

<dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-log4j12</artifactId>            <version>1.7.25</version>        </dependency>

创建 WEBLogAcpect 类

@Aspect@Componentpublic class WebLogAcpect {    private final static Logger orderLog = LoggerFactory.getLogger("order");    //定义切点    @Pointcut("execution(* com.qszhuang.backstage.service.OrderService.updateOrder*(..))")    public void webLog() {    }    @Before("webLog()")    public void doBefore(JoinPoint joinPoint) {        // 接收到请求,记录请求内容        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();        if (!StringUtils.isEmpty(attributes)) {            httpservletRequest request = attributes.getRequest();            // 记录下请求内容            orderLog.info("URL : " + request.getRequestURL().toString());            // orderLog.info("Http_METHOD : " + request.getMethod());            orderLog.info("IP : " + HttpUtil.getIp(request));            //获取操作人            if (!StringUtils.isEmpty(request.getCookies())) {                String cookieValueByName = HttpUtil.getCookieValueByName(request.getCookies(), WebSecurityConfig.TOKEN_HEADER);                Map<String, Claim> strinGClaimMap = TokenUtil.verifyToken(cookieValueByName);                //方法名                // orderLog.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());                orderLog.info("订单号 : {},操作人:{}", Arrays.toString(joinPoint.getArgs()), stringClaimMap.get("adminUsername").asString());            }        }else {            orderLog.info("整点退款");        }    }    @AfterReturning(returning = "ret", pointcut = "webLog()")    public void doAfterReturning(Object ret) throws Throwable {        // 处理完请求,返回内容        orderLog.info("操作返回值 : " + ret);    }}

配置log4j

创建文件 log4j.properties 打印order 日志到指定目录 当然可以配置多个日志分别保存

log4j.rootLogger=INFO,stdoutlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n#log4j.appender.timer_log=org.apache.log4j.DailyRollingFileAppender#log4j.appender.timer_log.Append=true#log4j.appender.timer_log.DatePattern='.'yyyy-MM-dd#log4j.appender.timer_log.File=E:/logs/timer/timer.log#log4j.appender.timer_log.Threshold=INFO#log4j.appender.timer_log.layout=org.apache.log4j.PatternLayout#log4j.appender.timer_log.layout.ConversionPattern=%d - %c [%t] %-5p %c %x %l - %m%nlog4j.logger.order=INFO,order_loglog4j.appender.order_log=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.order_log.Append=truelog4j.appender.order_log.DatePattern='.'yyyy-MM-ddlog4j.appender.order_log.File=../logs/order/order.loglog4j.appender.order_log.Threshold=INFOlog4j.appender.order_log.layout=org.apache.log4j.PatternLayoutlog4j.appender.order_log.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] %m%n

到此,关于“SpringBoot log打印及输出方式是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: SpringBoot log打印及输出方式是什么

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

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

猜你喜欢
  • SpringBoot log打印及输出方式是什么
    这篇文章主要介绍“SpringBoot log打印及输出方式是什么”,在日常操作中,相信很多人在SpringBoot log打印及输出方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoo...
    99+
    2023-06-25
  • SpringBoot log打印及输出方式
    目录SpringBoot log打印及输出导入jar包代码示例日志输出配置springboot切面技术打印log日志mvaen 准备 还有spring家族的创建 WebLogAcpe...
    99+
    2024-04-02
  • php打印输出的区别是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php打印输出的区别是什么一、打印处理print(); // 输出字符串 printf(); // 输出格式化字符串 print_r(); // 以...
    99+
    2016-07-04
    php
  • python控制台打印log输出重复的解决方法
    在我们使用log模块输出日志时,经常会遇到log输出重复的问题,如下: 先来看这个文件log.py的代码: 代码示例: ''' 功能描述:实现控制台和文件同时记录日志的功能 编写人:超哥 编写日期: 步骤分析...
    99+
    2022-06-02
    python控制台打印log python控制台输出 python log输出
  • SpringBoot日志的配置及输出的方法是什么
    这篇文章主要介绍“SpringBoot日志的配置及输出的方法是什么”,在日常操作中,相信很多人在SpringBoot日志的配置及输出的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoo...
    99+
    2023-06-21
  • python格式化输出方法是什么
    本篇内容介绍了“python格式化输出方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#初级版本的格式化输出name =&...
    99+
    2023-06-02
  • mysql格式化输出的方法是什么
    在MySQL中,可以使用以下方法来格式化输出结果: 使用 SELECT ... INTO OUTFILE 语句将查...
    99+
    2024-04-09
    mysql
  • mybatis输出SQL格式化的方法是什么
    这篇文章主要讲解了“mybatis输出SQL格式化的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatis输出SQL格式化的方法是什么”吧!mybatis输出SQL格式化通过...
    99+
    2023-06-21
  • Log4j关闭Spring和Hibernate日志打印方式是什么
    这篇文章主要介绍“Log4j关闭Spring和Hibernate日志打印方式是什么”,在日常操作中,相信很多人在Log4j关闭Spring和Hibernate日志打印方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-22
  • Linux部署springboot项目彩色日志打印的方法是什么
    这篇文章主要介绍“Linux部署springboot项目彩色日志打印的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux部署springboot项目彩色日志打印的方法是什么”文章能帮...
    99+
    2023-07-05
  • Slf4j+logback实现JSON格式日志输出方式是什么
    Slf4j+logback实现JSON格式日志输出方式是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Slf4j+logback实现JSON格式日志输出依赖<de...
    99+
    2023-06-22
  • windows兼容模式打印指的是什么
    这篇“windows兼容模式打印指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“windows兼容模式打印指的是什么...
    99+
    2023-07-02
  • 为什么 go 程序将输出打印到终端屏幕而不是 /dev/stderr?
    各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《为什么 go 程序将输出打印到终端屏幕而不是 /dev/stderr?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉...
    99+
    2024-04-04
  • python中print格式化输出的方法是什么
    Python中print函数的格式化输出可以通过占位符的方式实现。常用的占位符有: %s:字符串 %d:整数 %f:浮点数 示例...
    99+
    2024-04-02
  • double型输出格式指的是什么
    小编给大家分享一下double型输出格式指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!double型常规输出为“%lf”,但是double类型在默认情况...
    99+
    2023-06-20
  • python中三种输出格式是什么
    这篇文章主要介绍“python中三种输出格式是什么”,在日常操作中,相信很多人在python中三种输出格式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python中三种输出格式是什么”的疑惑有所帮助!...
    99+
    2023-06-29
  • C语言printf()输出格式是什么
    本篇内容介绍了“C语言printf()输出格式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C语言printf()输出格式主要说明格式...
    99+
    2023-07-05
  • c语言输出格式转换的方法是什么
    在C语言中,输出格式转换主要通过格式化输出函数`printf()`来实现。`printf()`函数可以根据指定的格式将数据输出到屏幕...
    99+
    2023-10-28
    c语言
  • Python不同格式打印九九乘法的方法是什么
    这篇文章主要介绍“Python不同格式打印九九乘法的方法是什么”,在日常操作中,相信很多人在Python不同格式打印九九乘法的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python不同格式打印九...
    99+
    2023-06-21
  • gateway、webflux、reactor-netty请求日志输出的方式是什么
    本篇内容介绍了“gateway、webflux、reactor-netty请求日志输出的方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作