zoukankan      html  css  js  c++  java
  • springboot logback日志的使用

    以下有两个使用,一个是简单使用,另一个是需要进行详细的配置再使用。首先给出源代码。可以直接使用

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    public class ScheduledTasks { private static Logger logger = LoggerFactory.getLogger(ScheduledTasks.class); private static SimpleDateFormat dateFormat = new SimpleDateFormat(); @Scheduled(cron="0 0 0 * * ?")//每天0点开始 public void reportCurrent() { logger.info("现在时间:{}", dateFormat.format(new Date()));
            logger.error("现在时间:{}", dateFormat.format(new Date()));
    } }

      

    简单使用1:如果只是简单的使用,不用具体的配置,可以使用以下的logback

    #设置路径

    logging.path=F:\demo

    #设置日志文件名

    logging.file=demo.log

    #下面可以配置指定日志级别输出到日志文件里面

    logging.level.root=ERROR

    配置使用2:logback.xml详细配置如下:

    在application.properties中引用:注意logback.xml放置的位置

    logging.config=classpath:logback.xml

    
    

    <?xml version="1.0" encoding="UTF-8" ?>

    <!-- 

        scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true

        scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位默认单位是毫秒,当scan为true时此属性生效,默认时间间隔为1分钟

        debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态,默认值为false

     -->

    <configuration scan="true" scanPeriod="3 seconds" debug="false">

        <!-- 这一句的意思是打印所有进入的信息 -->

        <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />

        <!-- 

            appender是<configuration>的子节点,是负责写日志的组件

            两个必要属性name和class:name指定appender名称,class指定appender的全限定名

            定义控制台appender 作用:把日志输出到控制台 class="ch.qos.logback.core.ConsoleAppender" 

        -->

        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

            <!-- 对日志进行格式化 -->

            <layout class="ch.qos.logback.classic.PatternLayout">

                <pattern>

                    {"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m"}

                </pattern>

            </layout>

        </appender>

        <!--

            定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 

            RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"

            参数: 

                <append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true

                <file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值

                <rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名

                <triggeringPolicy>:告知RollingFileAppender合适激活滚动

                <prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空

         -->

        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <!-- 如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true -->

            <append>true</append>

            <File>logs/logback-test.log</File>

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

                <!-- 每天滚动一次的日志 只保留30天内的日志文件 -->

                <FileNamePattern>

                    logs/logback-test.%d{yyyy-MM-dd}.log.zip

                    <maxHistory>30</maxHistory> 

                </FileNamePattern>

                <!-- 每分钟滚动一次日志 -->

                <!-- <FileNamePattern>

                    logs/logback-test.%d{yyyy-MM-dd_HH-mm}.log.zip

                </FileNamePattern> -->

            </rollingPolicy>

            <!-- 对日志进行格式化 -->

            <layout class="ch.qos.logback.classic.PatternLayout">

                <Pattern>

                    {"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m"}

                </Pattern>

            </layout>

        </appender>

        <!--

            定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 

            RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"

            参数: 

                <append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true

                <file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值

                <rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名

                <triggeringPolicy>:告知RollingFileAppender合适激活滚动

                <prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空

         -->

        <appender name="LOGBACK_ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <append>true</append>

            <file>logs/logback-test-error.log</file>

            <!--

                定义滚动策略 作用:根据固定窗口算法重命名文件的滚动策略 class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy

                <fileNamePattern>:表示当触发了回滚策略后,按这个文件命名规则生成归档文件,命名规则中的%i表示在maxIndex和minIndex之间的一个整数值

                <minIndex>:最小索引值

                <maxIndex>:最大索引值

             -->

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

                <fileNamePattern>logs/logback-test-error.log.%i</fileNamePattern>

                <minIndex>1</minIndex>

                <maxIndex>20</maxIndex>

            </rollingPolicy>

            <!-- 

                定义按文件大小触发滚动策略triggeringPolicy 作用:查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender触发当前活动文件滚动

                只有一个参数 maxSize 这是活动文件的大小,默认值是10MB

            -->

            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

                <maxFileSize>50MB</maxFileSize>

            </triggeringPolicy>

            <!-- 

                配置日志级别过滤器 作用:根据日志级别进行过滤,如果日志级别等于配置级别过滤器会根据onMath和onMismatch接收或拒绝日志

                参数:

                    <level>:设置过滤级别

                    <onMatch>:用于配置符合过滤条件的操作

                    <onMismatch>:用于配置不符合过滤条件的操作

                    此处配置为只接收ERROR日志级别信息

            -->

            <filter class="ch.qos.logback.classic.filter.LevelFilter">

                <level>ERROR</level>

                <onMatch>ACCEPT</onMatch>

                <onMismatch>DENY</onMismatch>

            </filter>

            <encoder>

                <pattern>

                    {"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m%n", "caller":"%caller{1}"}

                </pattern>

            </encoder>

        </appender>

        <!--

            定义滚动记录文件appender 作用:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 

            RollingFileAppender class="ch.qos.logback.core.rolling.RollingFileAppender"

            参数: 

                <append>:如果是true日志被追加到文件结尾,如果是false清空现存文件,默认是true

                <file>:被写入的文件名,可以是相对目录也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值

                <rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名

                <triggeringPolicy>:告知RollingFileAppender合适激活滚动

                <prudent>:当为true时不支持FixedWindowRollingPolicy支持TimeBasedRollingPolicy,但是有两个限制:1不支持也不允许文件压缩,2不能设置file属性必须留空

        -->

        <appender name="LOGBACK_ALL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <append>true</append>

            <file>logs/logback-test-all.log</file>

            <!--

                定义滚动策略 作用:根据固定窗口算法重命名文件的滚动策略 class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy

                <fileNamePattern>:表示当触发了回滚策略后,按这个文件命名规则生成归档文件,命名规则中的%i表示在maxIndex和minIndex之间的一个整数值

                <minIndex>:最小索引值

                <maxIndex>:最大索引值

             -->

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

                <fileNamePattern>logs/logback-test-all.log.%i</fileNamePattern>

                <minIndex>1</minIndex>

                <maxIndex>20</maxIndex>

            </rollingPolicy>

            <!-- 

                定义按文件大小触发滚动策略triggeringPolicy 作用:查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender触发当前活动文件滚动

                只有一个参数 maxSize 这是活动文件的大小,默认值是10MB

            -->

            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

                <maxFileSize>50MB</maxFileSize>

            </triggeringPolicy>

            <!-- 

                配置临界值过滤器 作用:过滤掉低于指定临界值的日志,当日志级别等于或高于临界值时过滤器返回NEUTRAL,当日志级别低于临界值时,日志会被拒绝

                此处配置为INFO 即过滤掉日志级别小于INFO的日志信息

            -->

            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

                <level>INFO</level>

            </filter>

            <encoder>

                <pattern>

                    {"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS}","thread":"%t","line":"%line","log_level":"%p","class_name":"%C;","msg":"%m%n", "caller":"%caller{1}"}

                </pattern>

            </encoder>

        </appender>

        <!--                    

            logger用来设置某一个包的日志打印级别,以及指定<appender>

            <loger> 仅有一个name属性,一个可选的level和一个可选的addtivity属性

                    name:用来指定受此loger约束的某一个包或者具体的某一个类

                    level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF

                    addtivity:是否向上级loger传递打印信息。默认是true,会将信息输入到root配置指定的地方,可以包含多个appender-ref,标识这个appender会添加到这个logger

        -->

        <logger name="com.roberto" level="DEBUG" additivity="false">

            <appender-ref ref="STDOUT" />

            <appender-ref ref="LOGBACK_ALL_LOG" />

            <appender-ref ref="LOGBACK_ERROR_LOG" />

        </logger>

        <!-- 将root的打印级别设置为"INFO",指定了名字为"FILE","STDOUT"的appender -->

        <root>

            <level value="INFO" />

            <appender-ref red="STDOUT" />

            <appender-ref ref="FILE" />

        </root>

    </configuration>

  • 相关阅读:
    堆栈
    一元多项式的乘法和加法
    单链表每隔k反转
    python命令行参数
    markdown学习笔记
    ansible学习笔记
    Linux进程管理和性能相关工具
    二分查找,折半查找,特殊情况二分查找
    插入排序,冒泡排序,归并排序, 稳定排序
    不稳定排序,选择排序,快速排序,快速排序优化, 内部排序
  • 原文地址:https://www.cnblogs.com/qq1141100952com/p/9606823.html
Copyright © 2011-2022 走看看