springboot slf4j配置日志输出到tomcat logs目录下

本文详细介绍了如何在Tomcat中使用logback进行日志配置,包括日志级别过滤、日志文件滚动策略、日志文件大小限制及保存天数等关键设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前用${catalina.home}一直取不到。其实直接用../就可以了。应为默认输出目录是运行目录即tomcat/bin,所以 可以如下配置一下。

logback-spring.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="10 seconds">

    <contextName>logback</contextName>


    <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
    <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />

    <!-- 定义日志存储的路径,不要配置相对路径 -->
    <property name="FILE_PATH" value="../logs" />

    <!-- 控制台输出日志 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志级别过滤INFO以下 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--每天生成一个日志文件,保存30天的日志文件。rollingFile用来切分文件的 -->
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <fileNamePattern>${FILE_PATH}/info/CPControl-infoLog.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

            <!-- keep 15 days' worth of history -->
            <maxHistory>30</maxHistory>

            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日志文件的最大大小 -->
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>

            <!-- 超出删除老文件 -->
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--每天生成一个日志文件,保存30天的日志文件。rollingFile用来切分文件的 -->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <fileNamePattern>${FILE_PATH}/error/CPControl-errorLog.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

            <!-- keep 15 days' worth of history -->
            <maxHistory>30</maxHistory>

            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日志文件的最大大小 -->
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>

            <!-- 超出删除老文件 -->
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- project default level -->
    <logger name="net.sh.rgface.serive" level="DEBUG" />

    <!-- 日志输出级别 -->
    <root>
        <level value="info" />
        <appender-ref ref="rollingFile" />
        <level value="error" />
        <appender-ref ref="error" />
        <level value="debug" />
        <appender-ref ref="console" />
    </root>
</configuration>

 

Log4j2是一个强大而灵活的日志框架,它支持Maven、Gradle等构建工具,并且与MyBatis Plus这样的ORM框架集成良好。要在MycatPlus中使用Log4j2打印日志,首先需要配置Log4j2的基本配置文件,通常名为log4j2.xml或log4j2.properties。 1. **配置Log4j2**: - 创建一个logging配置文件,比如`log4j2.xml`: ```xml <Configuration status="WARN"> <Appenders> <!-- 输出到控制台 --> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> <!-- 输出到文件,例如mybatis_plus.log --> <File name="file" fileName="${sys:catalina.base}/logs/mybatis_plus.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </File> </Appenders> <Loggers> <!-- 将MyBatis Plus的SQL查询记录到日志 --> <Root level="${sys:logging.level.root:info}"> <AppenderRef ref="Console"/> <AppenderRef ref="file"/> </Root> <Logger name="com.baomidou.mybatisplus" level="debug" additivity="false"> <AppenderRef ref="file"/> </Logger> </Loggers> </Configuration> ``` - 环境变量`${sys:}`用于读取系统属性,如`${sys:catalina.base}`获取Tomcat的安装目录。 2. **启用日志**: - 在MycatPlus项目中,添加对Log4j2的依赖,并配置启动类或应用初始化时加载日志配置: ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); LogManagerFactory.getContext(false).reset(); } } ``` 现在,每当MycatPlus有相关的日志事件发生时,Log4j2就会按照配置规则将其记录到控制台和文件中。如果想查看SQL查询日志,可以在MyBatis Plus的配置类中设置日志级别,如`@Slf4j`并注解DAO类: ```java @Slf4j public interface UserMapper extends BaseMapper<User> { //... } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值