记录一下Tomcat相关使用知识

1、Windows配置Tomcat为服务

找到bin目录下的service.bat批处理文件,通过CMD命令窗口输入 以下代码进行服务的配置:

1
$ service.bat install [service_name]

如果不想要这个服务了,使用如下命令删除服务:

1
$ service.bat remove [service_name]

如果需要配置服务显示的名称,需要修改service.bat中的大概在210行左右的DisplayName属性的值

1
2
3
4
eg: 
--DisplayName "Apache Tomcat 8.5 %SERVICE_NAME%" ^
修改为:
--DisplayName "Test-Apache Tomcat 8.5 %SERVICE_NAME%" ^

修改后保存,继续使用以上命令就能创建自定义的服务名称。如下:
在这里插入图片描述

配置服务为自启动:
选中服务,右键,点击属性,配置如下:
在这里插入图片描述
改为自动,点击确定即可:
在这里插入图片描述

2、减少或不使用Tomcat的日志相关

在生产环境中,如果服务项目运行时间很久,就会产生大量的日志文件,尤其是Tomcat也会产生很多日志文件,以下是配置Tomcat不生成相关日志信息的配置:

  • 修改bin目录下的catalina.sh文件,关闭catalina.out相关日志信息:
    在该文件的大概在210行左右的位置,找到如下信息:

    1
    2
     if [ -z "$CATALINA_OUT" ] ; then
    CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

    修改为:

    1
    2
    if [ -z "$CATALINA_OUT" ] ; then  
    CATALINA_OUT=/dev/null
  • 修改conf目录下的logging.properties文件,关闭相关日志信息:
    将所有的日志级别设置为WARNING或者OFF,如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    1catalina.org.apache.juli.AsyncFileHandler.level = OFF
    1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
    1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    2localhost.org.apache.juli.AsyncFileHandler.level = OFF
    2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
    2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

    3manager.org.apache.juli.AsyncFileHandler.level = OFF
    3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
    3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

    4host-manager.org.apache.juli.AsyncFileHandler.level = OFF
    4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
    4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

    java.util.logging.ConsoleHandler.level = OFF
    java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
    java.util.logging.ConsoleHandler.encoding = UTF-8

    ############################################################
    # Facility specific properties.

    # Provides extra control for each logger.
    ############################################################

    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = OFF
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = OFF
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = OFF
    org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHand
  • 修改conf目录下的server.xml文件,关闭localhost_access_log相关日志信息:
    注释掉如下配置信息即可:

    1
    2
    3
    <Valve className="org.apache.catalina.valves.AccessLogValve" 
    directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b"
    prefix="localhost_access_log" suffix=".txt"/>