springboot +aop+log4j日誌管理
做好日誌管理會給後續專案上線維護帶來很大的方便:
springboot專案開始建立:
1,引入依賴:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gaozhuan</groupId> <artifactId>springboot-log-timer</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.11</version> </dependency> </dependencies> </project>
2.編寫啟動類:
package com.gaozhuan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication //@EnableScheduling//定時任務 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
application.yml:
server: context-path: /log-timer port: 8888
3,利用aop記錄日誌:
引入依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
編寫aop類:
package com.gaozhuan.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; @Component @Aspect public class AopController { private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(AopController.class); // private Logger logger = Logger.getLogger(AopController.class.getName()); @Pointcut("execution(public * com.gaozhuan.controller..*.*(..))") public void webLog() { } @Before("webLog()") public void doBefore(JoinPoint joinPoint) throws Throwable { // 接收到請求,記錄請求內容 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); // 記錄下請求內容 logger.info("URL : " + request.getRequestURL().toString()); logger.info("HTTP_METHOD : " + request.getMethod()); logger.info("IP : " + request.getRemoteAddr()); logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName()); logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs())); } @AfterReturning(returning = "ret", pointcut = "webLog()") public void doAfterReturning(Object ret) throws Throwable { // 處理完請求,返回內容 logger.info("RESPONSE : " + ret); } }
4,利用log4j記錄日誌:
引入log4j.properties:
log4j.rootLogger=debug,CONSOLE,file,info #log4j.rootLogger=ERROR,ROLLING_FILE log4j.logger.cn.smbms=debug log4j.logger.org.apache.ibatis=debug log4j.logger.org.mybatis.spring=debug log4j.logger.java.sql.Connection=debug log4j.logger.java.sql.Statement=debug log4j.logger.java.sql.PreparedStatement=debug log4j.logger.java.sql.ResultSet=debug ###################################################################################### # Console Appender \u65e5\u5fd7\u5728\u63a7\u5236\u8f93\u51fa\u914d\u7f6e ###################################################################################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=debug log4j.appender.CONSOLE.DatePattern=yyyy-MM-dd log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern= - (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n ###################################################################################### # Rolling File \u6587\u4ef6\u5927\u5c0f\u5230\u8fbe\u6307\u5b9a\u5c3a\u5bf8\u7684\u65f6\u5019\u4ea7\u751f\u4e00\u4e2a\u65b0\u7684\u6587\u4ef6 ###################################################################################### #log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender #log4j.appender.ROLLING_FILE.Threshold=INFO #log4j.appender.ROLLING_FILE.File=${baojia.root}/logs/log.log #log4j.appender.ROLLING_FILE.Append=true #log4j.appender.ROLLING_FILE.MaxFileSize=5000KB #log4j.appender.ROLLING_FILE.MaxBackupIndex=100 #log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout #log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n ###################################################################################### # DailyRolling File \u6bcf\u5929\u4ea7\u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u683c\u5f0f:log2009-09-11 ###################################################################################### log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.DatePattern=yyyy-MM-dd log4j.appender.file.File=${AppInfoSystem.root}/logs/log.log #log4j.appender.file.File=logs/log.log log4j.appender.file.Append=true log4j.appender.file.Threshold=debug log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern= - (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n #DWR \u65e5\u5fd7 #log4j.logger.org.directwebremoting = ERROR #\u663e\u793aHibernate\u5360\u4f4d\u7b26\u7ed1\u5b9a\u503c\u53ca\u8fd4\u56de\u503c #log4j.logger.org.hibernate.type=DEBUG,CONSOLE #log4j.logger.org.springframework.transaction=DEBUG #log4j.logger.org.hibernate=DEBUG #log4j.logger.org.acegisecurity=DEBUG #log4j.logger.org.apache.myfaces=TRACE #log4j.logger.org.quartz=DEBUG #log4j.logger.com.opensymphony=INFO #log4j.logger.org.apache.struts2=DEBUG log4j.logger.com.opensymphony.xwork2=debug
引入依賴:
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.11</version> </dependency>
更改之前的 spring-boot-start-web 依賴為:防止日誌jar衝突
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
建立一個controller類:
package com.gaozhuan.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class LogController { @RequestMapping(value = "/index") public String index(){ return "hello logger!"; } }
啟動應用程式:
找到log4j:配置檔案中的log日誌位置:
開啟對應的log日誌:
相關推薦
springboot +aop+log4j日誌管理
做好日誌管理會給後續專案上線維護帶來很大的方便:springboot專案開始建立:1,引入依賴:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/PO
springboot AOP 實現日誌管理
本文使用註解進行spring AOP的實現。 1.AOP的基本概念 (1)Aspect(切面):通常是一個類,裡面可以定義切入點和通知 (2)JointPoint(連線點):程式執行過程中明確的點,一般是方法的呼叫 (3)Advice(通知):AOP在特定的切入點上執
SpringBoot全局日誌管理(AOP)
clas spec before 接收 方法測試 start cut asp hold 1、在pom.xml中引入aop的jar包 <dependency> <groupId>org.springframework.boot</gro
兩種基於AOP的日誌管理方法(springboot)
AOP基於切面程式設計,這裡的日誌管理倆種分別是 不需要配置xml檔案 1、切面類不做實際操作,切入點針對所有的controller類,各個需要儲存日誌的操作方法,分別執行日誌儲存的方法,更具有針對性。 2、通過自定義註解,針對方法級別,各個需要儲存日誌的
springboot整合log4j日誌記錄
1、在src/main/resources下面新建一個名為log4j.properties的檔案: ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j
commons-logging和Log4j 日誌管理/log4j.properties配置詳解
commons-logging和Log4j 日誌管理 (zz) 什麼要用日誌(Log)? 這個……就不必說了吧。 為什麼不用System.out.println()? 功能太弱;不易於控制。如果暫時不想輸出了怎麼辦?如果想輸出到檔案怎麼辦?如果想部分輸出怎麼辦?…… 為什麼
Springboot AOP處理日誌資訊錄入
現在凡是企業級的或者稍微大點專案,基本都需要日誌管理. 我這邊在springboot基礎上做了個日誌資訊記錄到資料庫的功能,在這裡備份一下,以後有需要就省的再重寫了. 首先我們得準備好所需要的jar,當然了這裡是pom.xml:
springboot預設的日誌管理工具logback的配置
1.首先建立xxx-spring.xml(必須是以spring結尾)2.logback-spring.xml的內容編輯<?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn">
SpringBoot之——log4j日誌配置案例
在建立Spring Boot工程時,我們引入了spring-boot-starter,其中包含了spring-boot-starter-logging,該依賴內容就是Spring Boot預設的日誌框架Logback,所以我們在引入log4j之前,需要先排除該包的依賴,再引入
JAVA學習筆記_利用slf4j進行log4j日誌管理
slf4j介紹 slf4j官網:http://www.slf4j.org/ SLF4J,即簡單日誌門面(Simple Logging Facade for Java),不是具體的日誌解決方案,它只服務於各種各樣的日誌系統。SLF4J所提供的核心API是一些
Spring整合log4j日誌管理
在使用Spring框架的時候,我們可以很方便的配置log4j來進行日誌管理。 進行配置之前,首先得下載jar包(log4j-1.2.11.jar) 配置如下: 1.在web.xml中最上面加入如下配置程式碼: [html] view plaincopyprint?
Spring的AOP實現日誌管理操作
關於這個aop,有時候面試官會經常問道這類的問題,比如說,你使用aop來實現日誌管理,那麼你的aop實現的時候,怎麼來獲取到你要的引數,如何還有你現在執行的操作命令? 今天就對這個問題進行測試解答。 文章宣告:此文章僅供測試,如有功能不全請諒解。 讀者最好對通知類,切入
SpringBoot-整合log4j日誌記錄
inf reel elements resp let home space ont contex 新建log4j配置文件 文件名稱log4j.properties #log4j.rootLogger=CONSOLE,info,error,DEBUG l
springboot日誌管理+集成log4j
簡單 info spring eve 日誌管理 exc group release 輸出結果 sprongboot使用的默認日誌框架是Logback。 可以在application.properties配置簡單日誌屬性,也可以單獨配置logback.xml格式,還可以使用
SpringBoot全域性日誌管理(AOP)
1、在pom.xml中引入aop的jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</
《SpringBoot學習篇》(5)AOP+自定義註解實現日誌管理
用到的AOP註解:@Aspect @Pointcut @After 首先看一下如何呼叫自定義註解: @MyLog(module="老師模組", method="查詢全部") @RequestMapping("/all") public List
springBoot logback日誌配置管理 aop切面日誌模組管理,單獨輸出日誌檔案
1.springBoot 日誌配置(將controller包下的日誌單獨輸出到一個檔案下) 1 我們遵守約定>配置>編碼的原則,如果使用logback進行日誌管理,先新增pom 檔案但是spring-boot-starter其中包含了 spring-bo
SpringBoot中使用log4j日誌
網址 默認 cat sources pan 目錄 space com 控制臺 一:引入jar包 使用SpringBoot創建項目的時候,pom文件引入了spring-boot-starter,其中包含了spring-boot-starter-logging,該依賴內
aop日誌管理(摘)
scrip clas 切面 getclass desc urn data etc int <bean id="logAopBean" class="com.demo.common.aop.LogAop"></bean> <aop:co
log4j+slf4j管理日誌項目遷移logback+slf4j
art 位置 更改 args nes fault nal 模板 property 作為一個剛踏入java語言的小學生,最近被安排了一個任務,原有的項目中使用的是log4j日誌管理 要轉換成logbacak的日誌管理。介於之前並未深究log4j和logback日誌,所以做起來