首页 »服务器 »Java

Spring Boot2配置服务器访问日志过程解析

这篇文章主要介绍了Spring Boot2配置服务器访问日志过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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这种形式,一天一个文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IT技术交流园。