logback配置文件(详细说明)

<?xml version="1.0" encoding="UTF-8"?>
<!-- debug 配置是否需要打印logback内部的日志信息 -->
<!-- scan 用来指定当前配置文件是否需要定期扫描,以便文件发生改变时候可以重新加载-->
<!-- scanPeriod 扫描间隔时间,默认是毫秒,跟scan搭配使用 -->
<configuration  scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>

    <!-- 五个日志级别 trace < debug < info < warn < error -->

    <!-- property元素可以理解为定义一个变量,后续可以通过${log.filePath}来获取对应的value -->
    <property name="log.filePath" value="E://logs/" />

    <!-- 所有的appender,可以理解为具体的日志打印工具类,
		不同的类输出目的地不一样,如控制台、文件、数据库、网络io传输等待 -->
    <!-- ConsoleAppender就是一个往控制台打印的日志工具类 -->
    <!-- 输出到控制台 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 定义日志输出格式 -->
        <!-- %date简写%d 表示输出日期,后面的{yyyy-MM-dd}表示日期格式 -->
        <!-- %thread简写%t 表示当前使用日志的线程名称 -->
        <!-- %level简写%p 表示输出打印日志的级别,注意简写是p不是l,
            中间的-5表示固定占5个长度,不够5个长度,右边补空格,如果是5,表示左边补齐空格,
            如果超过5个,则原样输出-->
        <!-- %file 表示打印日志的类名java结尾的类名,如Slf4jTest.java -->
        <!-- %line 表示当前打印日志在文件的位置,第几行 -->
        <!-- %r 表示getLogger()开始到现在打印当前日志走过的时间毫秒数,一般好像不怎么用这个 -->
        <!-- %c 表示日志讯息所使用的类的全名,个人测试发现跟%logger是一样的结果 -->
        <!-- %logger 表示输出当前的logger名称,
            {36}表示限定字符最多为36个,如果logger名称超出了长度,会自动缩减字符 -->
        <!-- 比如我们经常这么写 Logger logger = LoggerFactory.getLogger(Slf4jTest.class);
            那么logger的名称就是Slf4jTest的全路径名xxx.xxx.Slf4jTest -->
        <!-- %message简写%msg或%m 表示输出具体的日志消息,
            如logger.info("hello world")中的hello world -->
        <!-- %n 换行 -->
        <!-- 其他如[]或-都是日志美化加的普通文本,使用过程中按需定义格式,并不是都需要用到 -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36}-[%line] -- %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!-- 这里配置的是一个文件的appender -->
    <!-- 输出到文件的appender还有另一个类:ch.qos.logback.core.FileAppender,但是不支持日志滚动,一般不怎么用 -->
    <!-- 按天生成日志 -->
    <appender name="logFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Prudent>true</Prudent>
        <!-- 指定日志文件路径,log.filePath就是我们上面定义的property -->
        <file>${log.filePath}/shop.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 滚动后的日志按日期保存历史 -->
            <FileNamePattern>
                ${log.filePath}/shop.log-%d{yyyy-MM-dd}-%i.log
            </FileNamePattern>
            <!-- 保存最近 10 天的日志,防止磁盘被占满 -->
            <maxHistory>10</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 设置最大日志文件大小 -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>
                %d{yyyy-MM-dd HH:mm:ss.SSS} [%level][%thread]:%logger{50} [%method:%line] %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- root 也是Logger类的一个实例 ,是所有其他Logger实例的parent,这个parent不是继承,而是组合关系,
		Logger类里面有个属性就是parent,对应也是个Logger实例-->
    <!-- 我们通过LoggerFactory.getLogger(Slf4jTest.class)获取logger时,
        就是通过类全路径名称去找logger,如test.Slf4jTest  -->
    <!-- 如果找不到对应的logger,系统会自动创建一个同名logger,其parent最终指向root-->
    <!-- level 表示当前logger只打印info及以上的日志信息 -->
    <!-- 日志处理级别 -->
    <root level="info">
        <!-- 配置append引用,ref指向上面配置的appender name,表示当前logger需要向哪里写日志,
		这里配置两个,则既会控制台输出,也会写到文件,如果不配,则不会打印任何日志 -->
        <appender-ref ref="console"/>
        <appender-ref ref="logFile" />
    </root>

    <!-- 自定义的logger,name 是根据包名规则来匹配的,
            如下面的com.test,会匹配到com.test,也会匹配到com.test.xxx.xxx.xxx-->
    <!-- additivity 表示是否需要把root里配置的appender搬进来,
        如果为true,root里有console,logger里也有,会导致日志打印两次 -->
    <!-- 输出指定包文件的日志 -->
    <logger name="com.fish" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="logFile" />
    </logger>
    <!-- Spring 日志级别控制  -->
    <logger name="org.springframework" level="warn" />



</configuration>
参考博客

slf4j和logback日志框架详解_slf4j logback_时十二分的博客-CSDN博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是常用的 logback 配置文件的标签和参数说明: 1. `<configuration>` 标签:用于定义 logback 的配置信息,是配置文件必须的根元素。 2. `<appender>` 标签:用于定义日志输出的目的地,可以将日志输出到控制台、文件、数据库等不同的目的地。 - `name`:指定 appender 的名称。 - `class`:指定 appender 的类名。 - `<layout>`:指定日志输出的格式。 3. `<logger>` 标签:用于定义日志记录器,可以指定日志的级别、输出目的地等信息。 - `name`:指定 logger 的名称,用于标识不同的 logger。 - `level`:指定 logger 的日志级别。 - `additivity`:指定是否将日志事件传递给父级 logger。 4. `<root>` 标签:用于定义根日志记录器,可以指定日志的级别和输出目的地。 - `level`:指定日志的级别。 - `<appender-ref>`:指定日志输出的目的地。 5. `<filter>` 标签:用于定义过滤器,可以根据日志级别、包名等条件过滤掉不需要输出的日志。 - `class`:指定过滤器的类名。 6. `<pattern>` 标签:用于定义日志输出格式的模板。 - `pattern`:指定日志输出格式的模板。 7. `<encoder>` 标签:用于指定输出日志的格式。 - `class`:指定输出日志格式的类名。 8. `<property>` 标签:用于定义配置文件中的变量。 - `name`:定义变量的名称。 - `value`:定义变量的值。 通过合理配置这些标签和参数,可以实现对不同部分的应用程序日志的分级输出和管理,从而更好地掌握应用程序的运行情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值