Spring Boot 2 配置服務器訪問日志


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.java

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這種形式,一天一個文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM