Logback 的 access 模块

来自姬鸿昌的知识库
Jihongchang讨论 | 贡献2023年2月27日 (一) 15:18的版本
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1iJ411H74S?p=31

logback-access 模块与 Servlet 容器(如 Tomcat 和 Jetty)集成,以提供 HTTP 访问日志功能。

可以使用 logback-access 模块来替换 tomcat 的访问日志。

  1. 将 logback-access.jar 与 logback-core.jar 复制到 $TOMCAT_HOME/lib/ 目录下
  2. 修改 $TOMCAT_HOME/conf/server.xml 中的 Host 元素中添加:
    <Value className="ch.qos.logback.access.tomcat.LogbackValue"/>
    
  3. Logback 默认会在 $TOMCAT_HOME/conf 下查找文件 logback-access.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
        <!-- always a good activate OnConsoleStatusListener -->
        <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>
    
        <property name="LOG_DIR" value="${catalina.base}/logs"/>
    
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOG_DIR}/access.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>access.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
            </rollingPolicy>
            
            <encoder>
                <!-- 访问日志的格式 -->
                <pattern>combined</pattern>
            </encoder>
        </appender>
    
    
        <appender-ref ref="FILE"/>
    </configuration>