# 【SpringBoot】 開啟tomcat log

####  application.properties

[https://docs.spring.io/spring-boot/docs/3.1.6/reference/htmlsingle/#appendix.application-properties.server](https://docs.spring.io/spring-boot/docs/3.1.6/reference/htmlsingle/#appendix.application-properties.server)

```INI
server.tomcat.accesslog.buffered=true
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd
server.tomcat.accesslog.pattern=%{yyyy-MM-dd HH:mm:ss}t %a %A %p %m %U %q %s %T %H  %{referer}i %v %I %b %S %u
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.rename-on-rotate=false
server.tomcat.accesslog.request-attributes-enabled=false
server.tomcat.accesslog.rotate=true
server.tomcat.accesslog.suffix=.log
server.tomcat.accesslog.directory=logs
server.tomcat.basedir=${workspace.path}/docker/log/liveportal
```

**tomcat log pattern 文件 [https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html](https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html)**

- **%a** - Remote IP address
- **%A** - Local IP address
- <span style="background-color: #ffff00;">**%b** - Bytes sent, excluding HTTP headers, or '-' if zero</span>
- **%B** - Bytes sent, excluding HTTP headers
- **%h** - Remote host name (or IP address if `enableLookups` for the connector is false)
- **%H** - Request protocol
- **%l** - Remote logical username from identd (always returns '-')
- **%m** - Request method (GET, POST, etc.)
- **%p** - Local port on which this request was received. See also `%{xxx}p` below.
- **%q** - Query string (prepended with a '?' if it exists)
- **%r** - First line of the request (method and request URI)
- <span style="background-color: #ffff00;">**%s** - HTTP status code of the response</span>
- **%S** - User session ID
- **%t** - Date and time, in Common Log Format
- **%u** - Remote user that was authenticated (if any), else '-'
- **%U** - Requested URL path
- **%v** - Local server name
- <span style="background-color: #ffff00;">**%D** - Time taken to process the request, in millis</span>
- **%T** - Time taken to process the request, in seconds
- <span style="background-color: #ffff00;">**%F** - Time taken to commit the response, in millis</span>
- **%I** - Current request thread name (can compare later with stacktraces)

There is also support to write information incoming or outgoing headers, cookies, session or request attributes and special timestamp formats. It is modeled after the [Apache HTTP Server](https://httpd.apache.org/) log configuration syntax. Each of them can be used multiple times with different `xxx` keys:

- **`%{xxx}i`** write value of incoming header with name `xxx`
- **`%{xxx}o`** write value of outgoing header with name `xxx`
- **`%{xxx}c`** write value of cookie with name `xxx`
- **`%{xxx}r`** write value of ServletRequest attribute with name `xxx`
- **`%{xxx}s`** write value of HttpSession attribute with name `xxx`
- **`%{xxx}p`** write local (server) port (`xxx==local`) or remote (client) port (`xxx=remote`)
- **`%{xxx}t`** write timestamp at the end of the request formatted using the enhanced SimpleDateFormat pattern `xxx`

All formats supported by SimpleDateFormat are allowed in `%{xxx}t`. In addition the following extensions have been added:

- **`sec`** - number of seconds since the epoch
- **`msec`** - number of milliseconds since the epoch
- **`msec_frac`** - millisecond fraction