最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot添加AOP日志配置詳解

 更新時(shí)間:2023年10月25日 11:07:26   作者:刻苦的樊同學(xué)  
這篇文章主要介紹了springboot添加AOP日志配置詳解,日志是一種在軟件開發(fā)中常用的技術(shù),用于記錄和跟蹤應(yīng)用程序的運(yùn)行過程,通過AOP日志,開發(fā)人員可以實(shí)時(shí)監(jiān)控應(yīng)用程序的行為,包括方法的調(diào)用、參數(shù)的傳遞和返回值的獲取等,需要的朋友可以參考下

1,pom.xml配置

文件中添加以下配置

<!--spring aop 包-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2,自定義配置文件logback.xml

該配置文件位置在templates文件夾下第一層,和html文件夾位置并列。

在這里插入圖片描述

3,logback.xml文件配置內(nèi)容

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定義日志文件的存儲(chǔ)地址 勿在 LogBack 的配置中使用相對(duì)路徑-->
    <property name="LOG_HOME" value="D:/projects/log" />
    <!-- 控制臺(tái)輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %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}/springbootdemo.log.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天數(shù)-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
 
 
 
 
    <!--myibatis log configure-->
    <logger name="com.apache.ibatis" level="DEBUG"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
 
 
    <!-- 日志輸出級(jí)別
      trace<debug<info<warn<error<fatal
    級(jí)別之間是包含的關(guān)系,意思是如果你設(shè)置日志級(jí)別是trace,則大于等于這個(gè)級(jí)別的日志都會(huì)輸出。
    trace: 是追蹤,就是程序推進(jìn)以下,你就可以寫個(gè)trace輸出,所以trace應(yīng)該會(huì)特別多,不過沒關(guān)系,我們可以設(shè)置最低日志級(jí)別不讓他輸出。
    debug: 調(diào)試么,我一般就只用這個(gè)作為最低級(jí)別,trace壓根不用。是在沒辦法就用eclipse或者idea的debug功能就好了么。
    info: 輸出一下你感興趣的或者重要的信息,這個(gè)用的最多了。
    warn: 有些信息不是錯(cuò)誤信息,但是也要給程序員的一些提示,類似于eclipse中代碼的驗(yàn)證不是有error 和warn(不算錯(cuò)誤但是也請(qǐng)注意,比如以下depressed的方法)。
    error: 錯(cuò)誤信息。用的也比較多。
    fatal: 級(jí)別比較高了。重大錯(cuò)誤,這種級(jí)別你可以直接停止程序了,是不應(yīng)該出現(xiàn)的錯(cuò)誤么!不用那么緊張,其實(shí)就是一個(gè)程度的問題。
   -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
    <!--日志異步到數(shù)據(jù)庫 -->
    <!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">-->
    <!--<!–日志異步到數(shù)據(jù)庫 –>-->
    <!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">-->
    <!--<!–連接池 –>-->
    <!--<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">-->
    <!--<driverClass>com.mysql.jdbc.Driver</driverClass>-->
    <!--<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>-->
    <!--<user>root</user>-->
    <!--<password>root</password>-->
    <!--</dataSource>-->
    <!--</connectionSource>-->
    <!--</appender>-->
</configuration>

4,寫一個(gè)LogUtil類

@Component
@Aspect
public class logUtil {
    /**
     * 切入點(diǎn)配置
     */
    @Pointcut(value = "execution(* com.aaa.service.*.*(..))")
    public void pointCutOne(){
    }<br>
    /**
     * 前置通知
     * @param joinPoint
     */
   // @Before(value = "pointCutOne()")
    public void beforeSaveLog(JoinPoint joinPoint){
        System.out.println("在調(diào)用"+joinPoint.getSignature().getName()+"方法之前,打印。。。");
    }
 
    /**
     * 后置通知
     * @param joinPoint
     */
    @After(value = "pointCutOne()")
    public void afterReturningSaveLog(JoinPoint joinPoint){
        System.out.println("在調(diào)用"+joinPoint.getSignature().getName()+"方法之后,打印。。。");
    }
 
    /**
     * 異常通知
     * @param joinPoint
     * @param e
     */
    @AfterThrowing(value = "pointCutOne()",throwing = "e")
    public void afterThrowingSaveLog(JoinPoint joinPoint,Exception e){
        System.out.println("在調(diào)用"+joinPoint.getSignature().getName()+"方法時(shí)出現(xiàn)了"+e.getClass().getName()+"異常,異常描述:"+e.getMessage());
    }<br>
    /**
     * 最終通知
     */
    @AfterReturning(value = "pointCutOne()")
    public void afterSaveLog(JoinPoint joinPoint){
        System.out.println("在調(diào)用"+joinPoint.getSignature().getName()+"方法時(shí),無論有沒有異常都會(huì)打印。。。");
    }<br>
    /**
     * 環(huán)繞通知
     */
    public Object aroundSaveLog(ProceedingJoinPoint proceedingJoinPoint){
        Object proceed = null;
        System.out.println(System.currentTimeMillis()+"執(zhí)行業(yè)務(wù)方法之前---");
        try {
            proceed =  proceedingJoinPoint.proceed();
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
        System.out.println(System.currentTimeMillis()+"執(zhí)行業(yè)務(wù)方法之后---");
        return proceed;
    }
}

到此這篇關(guān)于springboot添加AOP日志配置詳解的文章就介紹到這了,更多相關(guān)springbootAOP日志配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java中Object?類的使用

    詳解Java中Object?類的使用

    Java的Object?類是所有類的父類,也就是說?Java?的所有類都繼承了?Object,本文主要來和大家講講Object?類的使用,感興趣的可以了解一下
    2023-05-05
  • SpringBoot+Spring Security+JWT實(shí)現(xiàn)RESTful Api權(quán)限控制的方法

    SpringBoot+Spring Security+JWT實(shí)現(xiàn)RESTful Api權(quán)限控制的方法

    這篇文章主要介紹了SpringBoot+Spring Security+JWT實(shí)現(xiàn)RESTful Api權(quán)限控制的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java數(shù)據(jù)結(jié)構(gòu)中七種排序算法實(shí)現(xiàn)詳解

    Java數(shù)據(jù)結(jié)構(gòu)中七種排序算法實(shí)現(xiàn)詳解

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)中七種排序算法的實(shí)現(xiàn)方法,排序算法可分為兩大類,比較類排序和非比較類排序,顧名思義可知它們是通過比較來決定元素間的相對(duì)次序,需要詳細(xì)了解排序算法的朋友可以參考下
    2024-02-02
  • SpringBoot多環(huán)境配置及日志記錄器詳解

    SpringBoot多環(huán)境配置及日志記錄器詳解

    這篇文章主要介紹了SpringBoot多環(huán)境配置及日志記錄器詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • 給@Value設(shè)置默認(rèn)值以及為static變量賦值問題

    給@Value設(shè)置默認(rèn)值以及為static變量賦值問題

    在Spring框架中,@Value注解用于屬性注入,可將配置文件中的值賦給變量,未指定默認(rèn)值時(shí),若配置文件缺少相應(yīng)屬性,程序啟動(dòng)會(huì)報(bào)錯(cuò),可通過設(shè)定默認(rèn)值防止此問題,對(duì)于靜態(tài)變量,由于@Value無法直接注入,需通過Set方法賦值,該方法也支持默認(rèn)值設(shè)置
    2024-09-09
  • SpringBoot如何處理@KafkaListener消息

    SpringBoot如何處理@KafkaListener消息

    Spring通過KafkaMessageListenerContainer、ConcurrentMessageListenerContainer等組件實(shí)現(xiàn)Kafka消息的監(jiān)聽和處理,并通過@KafkaListener注解將業(yè)務(wù)邏輯與Kafka消費(fèi)者連接起來,Spring?Boot自動(dòng)配置Kafka相關(guān)組件,簡化了Kafka的使用
    2024-12-12
  • SpringMVC攔截器超詳細(xì)解讀

    SpringMVC攔截器超詳細(xì)解讀

    SpringMVC的處理器攔截器,類似于Servlet開發(fā)中的過濾器Filter,用于對(duì)處理器進(jìn)行預(yù)處理和后處理。?依賴于web框架,在實(shí)現(xiàn)上基于Java的反射機(jī)制,屬于面向切面編程(AOP)的一種運(yùn)用
    2022-07-07
  • Java中DecimalFormat用法詳解

    Java中DecimalFormat用法詳解

    這篇文章主要為大家詳細(xì)介紹了Java中DecimalFormat的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • POI讀取excel簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    POI讀取excel簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了POI讀取excel簡介,詳細(xì)的介紹了什么是Apache POI和組件,有興趣的可以了解了解一下
    2017-08-08
  • SpringBoot整合MyBatis-Plus的示例代碼

    SpringBoot整合MyBatis-Plus的示例代碼

    這篇文章主要介紹了SpringBoot整合MyBatis-Plus的示例代碼,使用?MyBatis-Plus 可以減少大量的開發(fā)時(shí)間,單表的增刪改查可以不用寫 sql 語句,本文主要介紹整合需要主要事項(xiàng),需要的朋友可以參考下
    2022-03-03

最新評(píng)論

朝阳区| 广德县| 元朗区| 台南市| 许昌县| 乌鲁木齐市| 铜梁县| 平原县| 巨野县| 乌拉特后旗| 双牌县| 侯马市| 富蕴县| 博爱县| 彭泽县| 平顺县| 延边| 高阳县| 高阳县| 阿瓦提县| 荥阳市| 盖州市| 株洲市| 清涧县| 忻州市| 陆河县| 佳木斯市| 顺平县| 郧西县| 财经| 兴文县| 平利县| 福海县| 大理市| 察哈| 焉耆| 天祝| 庆安县| 万载县| 沅陵县| 长海县|