日志处理方案(Slf4j+logback)

依赖
<!-- 日志 包含slf4j接口和log4j实现 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.26</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
</dependency>
logback配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- logback配置
    1. 生产环境禁止输出日志到控制台
       注释 <appender-ref ref="STDOUT" /> 即可
    2. 配置包日志
       配置logger标签即可,name字段为包全路径,lever可控制日志等级
    3. 生产环境下不停机更新日志配置
       scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效
-->
<configuration scan="true" scanPeriod="60000">

    <!-- Basic log dir, name config -->
    <property name="baseDir" value="D:/logs/JavaDemo"/>
    <property name="demoClassDir" value="demoClass"/>

    <!-- DemoClass log -->
    <appender name="DEMO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${baseDir}/${demoClassDir}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <charset>UTF-8</charset>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss z} [%thread] %-5level %logger{5} %M:%L - %msg%n</Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${baseDir}/${demoClassDir}/%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--只保留最近90天的日志-->
<!--            <maxHistory>90</maxHistory>-->
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
<!--            <totalSizeCap>1GB</totalSizeCap>-->
        </rollingPolicy>
    </appender>

    <!-- 控制台输出 不需要修改 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss z} [%thread] %-5level %logger{5} %M:%L - %msg%n</Pattern>
        </encoder>
    </appender>

    <logger name="com.spz.demo.java" level="INFO" additivity="true">
        <appender-ref ref="DEMO" />
    </logger>

    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Demo {
    private static final Logger log = LoggerFactory.getLogger(Demo.class);
    public static void main(String[] args) {
        log.info("info");
        log.warn("warn");
        log.error("error");
        log.debug("debug");
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值