Tomcat控制臺中看到的日誌是伺服器的日誌,而伺服器訪問日誌則是記錄服務處理的請求信息。 ...
Tomcat控制臺中看到的日誌是伺服器的日誌,而伺服器訪問日誌則是記錄服務處理的請求信息。
開發環境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
1、新建一個名稱為demo的Spring Boot項目。
2、application.yml 添加配置
server: tomcat: basedir: logs accesslog: pattern: '%t %m %s %v %U' enabled: true directory: access-logs buffered: false
上面表示將日誌存放於項目的logs\access-logs目錄下;
buffered: false表示不緩衝,直接將日誌記錄到文件中;
pattern的標識符一些常用取值如下:
%a - 遠端IP地址 %A - 本地IP地址 %b - 發送的位元組數,不包括HTTP頭,如果為0,使用"-" %B - 發送的位元組數,不包括HTTP頭 %h - 遠端主機名(如果resolveHost=false,遠端的IP地址) %H - 請求協議 %l - 從identd返回的遠端邏輯用戶名(總是返回 '-') %m - 請求的方法(GET,POST,等) %p - 收到請求的本地埠號 %q - 查詢字元串(如果存在,以 '?'開始) %r - 請求的第一行,包含了請求的方法和URI %s - 響應的狀態碼 %S - 用戶的session ID %t - 日誌和時間,使用通常的Log格式 %u - 認證以後的遠端用戶(如果存在的話,否則為'-') %U - 請求的URI路徑 %v - 本地伺服器的名稱 %D - 處理請求的時間,以毫秒為單位 %T - 處理請求的時間,以秒為單位
3、修改啟動類代碼 DemoApplication.cs
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping("/{name}") public String test(@PathVariable String name){ return name; } }
Run項目後,自動在項目目錄中生成logs\access-logs\access_log.2019-09-25.log
先後訪問
http://localhost:8080/111 http://localhost:8080/aaa
打開access_log.2019-09-25.log,可看到生成了2條記錄:
[25/Sep/2019:22:01:58 +0800] GET 200 localhost /111 [25/Sep/2019:22:02:01 +0800] GET 200 localhost /aaa
備註:
本人版本是apache-tomcat-9.0.0.M11,預設是開啟訪問日誌,打開tomcat/conf/server.xml文件,下麵是開啟訪問日誌。
記錄的文件放在/tomcat/logs目錄下,文件命名為localhost_access_log.2019-09-25.txt這種形式,一天一個文件。