`

166. Spring Boot 开启access_log日志输出

阅读更多

 

 

需求缘起:

       使用Tomcat的,都知道tomcat有一个logs目录,在此目录下有一个访问日志,文件名称形如localhost_access_log.2017-09-24.txt,这个名称的话,前缀是:localhost_access_log,后缀2017-09-24是根据当前的时间进行形成的。那么我们的问题是:spring boot如何开启access_log日志输出呢

本节知识:

       通过本节博客,你将会获得如下技能:

写道
(1)在spring boot中开启access_log日志输出
(2)日志格式模式配置项
(3)别名设置日志格式
(4)请求参数设置日志格式

 

       接下来看下本节具体的内容:

一、在spring boot中开启access_log日志输出

       首先我们需要支持spring boot默认的web容器是tomcat,如果使用不同的web容器,这里开启的配置项是不一样的。这里我们介绍的是tomcat是如何开启的。

       在调试的时候,如果我们需要查看访问日志,在spring boot中进行开启是很简单的事情,只是spring boot默认没有开启。那么怎么开启呢?只需要在application.properties文件添加如下配置:

 

#日志开关

server.tomcat.access-log-enabled=true

#日志格式

server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D

#日志输出目录,这里是设置为当前目录下

server.tomcat.basedir=./

 

 

二、测试

       随便访问一个请求:http://127.0.0.1:8080/test ,在项目上刷新(或者按F5),可以看到一个logs目录:access_log.2017-09-24.log,打开文件查看日志:

127.0.0.1 - - [24/Sep/2017:13:55:46 +0800] "GET /test HTTP/1.1" 200 2 123

127.0.0.1 - - [24/Sep/2017:13:55:46 +0800] "GET /favicon.ico HTTP/1.1" 200 946 18

127.0.0.1 - - [24/Sep/2017:13:56:03 +0800] "GET /test HTTP/1.1" 200 2 9

127.0.0.1 - - [24/Sep/2017:13:56:03 +0800] "GET /favicon.ico HTTP/1.1" 200 946 3

       从这里访问/test请求,同时也会访问/favicon.ico,这个是浏览器在显示title的地方需要显示的一个图标。

 

三、日志格式模式配置项

#日志格式

server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D

       这里都有什么可配置项的呢?

a - 远程IP地址
    
A - 本地IP地址
    
b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节
    
B - 发送的字节数,不包括HTTP
    
h - 远程主机名
    
H - 请求协议
    
l (小写的L)- 远程逻辑从identd的用户名(总是返回' - '
    
m - 请求方法
    
p - 本地端口
    
q - 查询字符串(在前面加上一个如果它存在,否则是一个空字符串
    
r - 第一行的要求
    
s - 响应的HTTP状态代码
    
S - 用户会话ID
    
t - 日期和时间,在通用日志格式

    u - 远程用户身份验证
    
U - 请求的URL路径
    
v - 本地服务器名
    
D - 处理请求的时间(以毫秒为单位)
    
T - 处理请求的时间(以秒为单位)
    
(大写的i - 当前请求的线程名称

 

四、别名设置日志格式

此外,可以指定以下别名来设置为普遍使用的模式之一:

common - %h %l %u %t "%r" %s %b

combined - %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"

       那么在application.properties文件就可以这么配置:

#日志格式

server.tomcat.access-log-pattern=common

 

五、请求参数设置日志格式

另外,还可以将request请求的查询参数、session会话变量值、cookie值或HTTP请求/响应头内容的变量值等内容写入到日志文件。

它仿照了apache的语法:

    {XXX}i xxx代表传入的头(HTTP Request)

    {XXX}o xxx代表传出​​的响应头(Http Resonse)

    {XXX}c  xxx代表特定的Cookie

    {XXX}r  xxx代表ServletRequest属性名

    {XXX}s xxx代表HttpSession中的属性名

       例如:

%{X-Real-IP}i %u %t %r %s %b

 

 

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

分享到:
评论

相关推荐

    spring-boot-reference.pdf

    Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...

    spring-boot-starter-purge-accesslog:Spring Boot应用程序的AccessLog清除策略

    用于Spring Boot应用程序的可清除AccessLog 为基于Spring Boot的应用程序启用访问日志文件清除功能的模块。 添加项目Lombok代理 该项目使用生成getter和setter等。从命令行编译应该不会引起任何问题,但是在IDE中,...

    Spring boot按日切分spring boot的nohup.out日志文件的方法

    同时,Spring Boot本身也支持使用Logback或Log4j等日志框架,它们提供了丰富的日志切分和管理功能,可以根据项目需求选择合适的方式。 总的来说,合理地管理和切分日志文件对于监控应用状态、排查问题以及保持系统...

    Spring boot 配置参数一览.pdf

    Spring Boot 是一个开源的 Java 基础框架,主要用于快速、简便地创建独立的、生产级别的基于Spring的应用程序。它使用“约定优于配置”的原则,让开发者能够更快地构建项目。Spring Boot 的配置系统非常灵活,允许...

    spring boot项目和vue一起放在tomcat部署

    "Spring Boot 项目与 Vue 一起部署到 Tomcat 服务器" 在本文中,我们将介绍如何将 Spring Boot 项目和 Vue 一起部署到 Tomcat 服务器中。这个过程需要我们对 Tomcat 服务器进行配置,以便能够正确地部署并运行我们...

    spring boot入门例子

    9. **日志(Logging)**:Spring Boot 默认使用Logback 或 Log4j2 作为日志系统,并提供了基本的日志配置。 10. **健康检查(Actuator)**:Spring Boot Actuator 提供了一系列端点来监控和管理应用的健康状态、...

    spring boot框架demo

    9. **日志(Logging)**:Spring Boot默认集成了Logback或Log4j2进行日志管理。 10. **测试(Testing)**:Spring Boot提供了便利的测试工具和注解,如`@SpringBootTest`,方便编写集成测试和端到端测试。 在导入...

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

    其中,basedir 表示日志文件的目录,accesslog 配置了访问日志的模式,enabled 表示是否启用访问日志,directory 表示日志文件的目录,buffered 表示是否缓冲日志。 pattern 是访问日志的模式,常用的取值有: * %...

    SpringBoot配置详解

    在本文中,我们详细介绍了Spring Boot应用程序的Properties配置,包括配置文件、Profiles、应用程序设置、日志记录、身份认证、嵌入式服务器配置、SSL/TLS配置和Tomcat配置等方面。了解这些配置项,可以帮助开发者更...

    浅谈spring boot 集成 log4j 解决与logback冲突的问题

    完成以上步骤后,重启Spring Boot应用并检查日志输出是否符合预期。可以通过打印不同级别的日志信息来验证: ```java import org.apache.log4j.Logger; public class LogTest { private static final Logger ...

    学生宿舍管理系统java spring boot

    Spring框架自带的日志组件结合Log4j或Logback等工具,可以实现详细的日志记录。 10. **测试与部署**: 使用JUnit进行单元测试,Mockito模拟依赖,确保代码质量。部署方面,Spring Boot应用可以被打包成可执行的JAR...

    Spring Boot项目学习之通用权限管理项目03

    在本教程中,我们将深入探讨如何使用Spring Boot构建一个通用的权限管理项目,重点在于“增删改”操作。Spring Boot作为Java开发的热门框架,以其简洁的配置和快速的开发能力深受开发者喜爱。在权限管理领域,它可以...

    基于Spring Boot企业档案管理

    Spring Boot可以集成Logback或Log4j实现日志记录,同时可以自定义审计事件监听器,记录用户的操作行为。 7. 定时任务:定期进行档案备份,防止数据丢失。Spring Boot的Spring Scheduler模块可以用于设置定时任务,...

    springboot应用打包成war包部署

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" /> ... ``` 在上面的配置中,我们可以将 WAR 文件部署到 Tomcat 容器中,并...

    Spring Boot异步输出Logback日志方法详解

    通过这样的配置,Spring Boot应用程序将实现异步日志输出,同时日志被分别存储在控制台和文件中,方便分析和调试。在实际项目中,可以根据需要调整日志级别、文件滚动策略、日志格式等配置,以满足具体需求。

    详解Spring Boot 部署与服务配置

    6. accesslog.directory:Access 日志目录,默认在 basedir/logs,例如 server.tomcat.accesslog.directory=H:/springboot-tomcat-tmp/logs。 三、Jetty 容器配置 如果您想选择 Jetty 容器,也非常简单,就是把 ...

    spring,获取IP.doc

    最后,`server.tomcat.access-log-pattern` 和 `server.tomcat.access-log-enabled` 分别用于配置访问日志的格式和是否开启访问日志记录,`server.tomcat.internal-proxies` 定义了内部代理的 IP 规则,用于判断请求...

    java开发的停车场管理系统.zip

    - **日志记录**:使用Log4j或Logback记录系统运行日志,便于故障排查。 5. **设计模式** - **MVC模式**:将模型、视图和控制器分离,提高代码可读性和可维护性。 - **工厂模式**:用于创建数据库连接或对象实例...

    基于SpringBoot的脚手架项目

    - **日志输出**:可以配置日志输出到控制台、文件、远程服务器等。 - **日志审计**:对关键操作记录日志,便于后期审计追踪。 5. **其他模块** - **异常处理**:全局异常处理器,统一处理程序中抛出的异常,提供...

    spring文档4.3.x版本

    文档中还会详细讲述如何使用Log4j 1.2或2.x,避免使用Commons Logging,以及如何在Spring应用中通过SLF4J与Log4j或Logback结合使用,还有如何使用Java的原生日志库JUL(java.util.logging)。此外,文档还提供了对...

Global site tag (gtag.js) - Google Analytics