zoukankan      html  css  js  c++  java
  • slfj+logback

    1.pom.xml

    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    </dependency>


    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
    </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.0.13</version>
    </dependency>

    2.logback.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!--debug="true" : 打印logback内部状态(默认当logback运行出错时才会打印内部状态 ),配置该属性后打印条件如下(同时满足):
    1、找到配置文件 2、配置文件是一个格式正确的xml文件 也可编程实现打印内部状态,例如: LoggerContext lc = (LoggerContext)
    LoggerFactory.getILoggerFactory(); StatusPrinter.print(lc); -->
    <!-- scan="true" : 自动扫描该配置文件,若有修改则重新加载该配置文件 -->
    <!-- scanPeriod="30 seconds" : 配置自动扫面时间间隔(单位可以是:milliseconds, seconds, minutes
    or hours,默认为:milliseconds), 默认为1分钟,scan="true"时该配置才会生效 -->
    <configuration debug="false" scan="true" scanPeriod="30 seconds" packagingData="true">
    <!-- 设置 logger context 名称,一旦设置不可改变,默认为default -->
    <contextName>myAppName</contextName>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
    <encoder>
    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- 当前活动日志文件名 -->
    <file>./my_log.log</file>
    <!-- 文件滚动策略根据%d{patter}中的“patter”而定,此处为每天产生一个文件 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <!-- 归档文件名“.zip或.gz结尾”,表示归档文件自动压缩 -->
    <FileNamePattern>./my_log%d{yyyyMMdd}.log.zip</FileNamePattern>
    <maxHistory>30</maxHistory>
    </rollingPolicy>

    <!--rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
    <fileNamePattern>renhai%i.log</fileNamePattern>
    <minIndex>1</minIndex>
    <maxIndex>10</maxIndex>
    </rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
    <maxFileSize>20MB</maxFileSize>
    </triggeringPolicy-->

    <!-- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    rollover daily
    <fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    each file should be at most 30MB, keep 60 days worth of history, but at most 20GB
    <maxFileSize>30MB</maxFileSize>
    <maxHistory>60</maxHistory>
    <totalSizeCap>20GB</totalSizeCap>
    </rollingPolicy> -->


    <encoder>
    <pattern>%d{HH:mm:ss.SSS}[%-5level][%thread]%logger{36} - %msg%n</pattern>
    <!-- <pattern>%d{HH:mm:ss.SSS}[%-5level][%thread] - %msg%n</pattern> -->
    </encoder>
    </appender>

    <!-- 日志级别若没显示定义,则继承最近的父logger(该logger需显示定义level,直到rootLogger)的日志级别-->
    <!-- logger的appender默认具有累加性(默认日志输出到当前logger的appender和所有祖先logger的appender中),可通过配置 “additivity”属性修改默认行为-->
    <logger name="com.yinz" level="debug" additivity="false" >
    <appender-ref ref="FILE"/>
    </logger>

    <!-- 至多只能配置一个root -->
    <root level="debug">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
    </root>
    </configuration>
    3.
    import lombok.extern.slf4j.Slf4j;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    @Slf4j
    public class Test2 {
    static Logger log1 = LoggerFactory.getLogger(Test2.class);

    public static void main(String[] args) {

    System.out.println(log1.isInfoEnabled());
    log1.info("你好啊{}", "01");
    log.info("cc");

    }
    }



    以上会打印到控制台和文件丽
     
  • 相关阅读:
    [ Scala ]关于scala环境搭建过程中,sbt编译中maven下载失败的解决方案(改成阿里的maven仓库)
    复习笔记:一个简单的动态代理实现
    复习笔记:一个简单的反射工厂Demo
    定时器Timer如何终止运行的问题
    Python RESTful接口开发02
    python 内置模块 logging的使用
    Django项目数据处理的流程是怎样的
    Django-Redis:在Django中使用redis作为缓存
    Python RESTful 接口开发01
    teamview
  • 原文地址:https://www.cnblogs.com/tiancai/p/10208941.html
Copyright © 2011-2022 走看看