Spring Boot嵌入式服务器日志

学习在Spring Boot中启用和自定义为嵌入式服务器生成的内部和访问日志,例如tomcat,jetty和undertow。

1.嵌入式服务器的日志记录类型

通常,在应用程序中,我们希望将嵌入式日志分为两类:

1.1。访问日志

访问日志表示与接收到的请求有关的信息,向客户端发送的响应以及在处理请求之间的重要详细信息。

1.2。内部日志

内部日志提供有关框内tomcat服务器运行方式的内部记录信息。它只是内部信息,在我们面对服务器本身的问题之前,并不会提供太多帮助。

2.嵌入式服务器中的访问日志

可以通过属性文件中各自的名称空间为Tomcat,Undertow和Jetty配置访问日志。

例如,以下设置将启用具有自定义模式的访问日志[ 更多信息 ]。

#tomcat
server.tomcat.basedir=C:/temp/logs
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
#undertow
server.undertow.accesslog.directory=C:/temp/logs
server.undertow.accesslog.enabled=true
server.undertow.accesslog.pattern=%t %a "%r" %s (%D ms)
#jetty
server.jetty.accesslog.filename=/var/log/jetty-access.log
server.jetty.accesslog.enabled=true

Tomcat日志默认位置logs相对于Tomcat基本目录的目录,该目录是temp目录。您可以通过覆盖basedir属性来提供文件系统中生成日志的位置。

我们可以在此参考页面中找到嵌入式服务器访问日志的所有受支持的属性。

访问日志选项
#tomcat
server.tomcat.accesslog.buffered=true # Whether to buffer output such that it is flushed only periodically.
server.tomcat.accesslog.directory=logs # Directory in which log files are created。 Can be absolute or relative to the Tomcat base dir.
server.tomcat.accesslog.enabled=false # Enable access log.
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd # Date format to place in the log file name.
server.tomcat.accesslog.pattern=common # Format pattern for access logs.
server.tomcat.accesslog.prefix=access_log # Log file name prefix.
server.tomcat.accesslog.rename-on-rotate=false # Whether to defer inclusion of the date stamp in the file name until rotate time.
server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for the IP address, Hostname, protocol, and port used for the request.
server.tomcat.accesslog.rotate=true # Whether to enable access log rotation.
server.tomcat.accesslog.suffix=.log # Log file name suffix.
#jetty
server.jetty.accesslog.append=false # Append to log.
server.jetty.accesslog.date-format=dd/MMM/yyyy:HH:mm:ss Z # Timestamp format of the request log.
server.jetty.accesslog.enabled=false # Enable access log.
server.jetty.accesslog.extended-format=false # Enable extended NCSA format.
server.jetty.accesslog.file-date-format= # Date format to place in log file name.
server.jetty.accesslog.filename= # Log filename。 If not specified, logs redirect to "System.err".
server.jetty.accesslog.locale= # Locale of the request log.
server.jetty.accesslog.log-cookies=false # Enable logging of the request cookies.
server.jetty.accesslog.log-latency=false # Enable logging of request processing time.
server.jetty.accesslog.log-server=false # Enable logging of the request hostname.
server.jetty.accesslog.retention-period=31 # Number of days before rotated log files are deleted.
server.jetty.accesslog.time-zone=GMT # Timezone of the request log.
#undertow
server.undertow.accesslog.dir= # Undertow access log directory.
server.undertow.accesslog.enabled=false # Whether to enable the access log.
server.undertow.accesslog.pattern=common # Format pattern for access logs.
server.undertow.accesslog.prefix=access_log。 # Log file name prefix.
server.undertow.accesslog.rotate=true # Whether to enable access log rotation.
server.undertow.accesslog.suffix=log # Log file name suffix.

3.嵌入式服务器中的内部日志

为了在Spring Boot时为嵌入式服务器生成内部日志,我们需要为服务器组件定义日志级别

#Tomcat
logging.level.org.apache.tomcat=DEBUG
logging.level.org.apache.catalina=DEBUG
#Jetty
logging.level.org.eclipse.jetty=INFO
logging.level.org.eclipse.jetty.websocket=DEBUG
#Undertow
logging.level.io.undertow.server=DEBUG
logging.level.io.undertow.websockets=DEBUG

请问您有关如何在Spring Boot应用程序中为嵌入式服务器(tomcat,jetty和undertow)启用和自定义服务器日志的问题

saigon has written 1445 articles

Leave a Reply