7.Logback主要标签

Posted stdio0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.Logback主要标签相关的知识,希望对你有一定的参考价值。

Logback主要标签说明

  1. Logger: 日志的记录器,主要用于存放日志对象,也可以用来定义日志的类型和级别等。
  2. appender:用于指定日志输出的目的地,也就是输出的媒介。这个媒介可以是控制台,也可以是文件,还可以是远程套接字服务器等。
  3. layout:用于格式化日志输出的格式。

Spring整合Logback之后,Logback会默认去寻找文件进行加载,它的加载顺序为:

  • 编译时指定java -Dlogback.configurationfile=xxx/xxx.xml
  • 加载classpath下的logback.groovy文件
  • classpath下的logback-test.xml文件
  • classpath下的logback.xml文件
  • 若没有以上文件,若jdk是1.6以上,则会调用Service Loader查找com.qos.logback.class.spi.Configurator这个接口的第一个实现类
  • 如果以上都没有,则按照ch.qos.logback.classic.BasicConfigurator来输出,这个类设置的是直接在控制台输出。
  • logback在eclipse中经常会乱报错,改了很多次都没辙,后来改回原来的反而好了。。。
  • 在类上方使用@Slf4j注解以后就可以不用创建logger对象,直接使用log即可。除了Logback之外,还需要添加依赖包
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
  • 然后:

    1> 在https://projectlombok.org/download 下载Lombok.jar文件
    2> 将lombok文件放到eclipse安装目录
    3> 然后win+R输入cmd进入cmd控制台,进入到eclipse安装目录下,输入以下命令:

java -jar lombok.jar

4> 在跳出来的窗口中首先选Specify location按钮,选择eclipse安装目录,然后点击Install/update
5> 安装成功后,退出,重启eclipse

Logback配置:

<?xml version="1.0" encoding="UTF-8"?>
<!-- scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->

<configuration debug="false" scan="true" scanPeriod="60 seconds" >
    <!-- <property> :用来定义定义参数常量,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。 -->
    <!-- 日志输出有五个级别:trace - debug - info - warn - error -->
    <property name="log.level" value="debug" />
    <!-- 文件最多保留30天 -->
    <property name="log.maxHistory" value="30" />
    <!-- catalina.base:tomcat实例的根目录 -->
    <property name="log.filePath" value="${catalina.base}/o2o/logs/webapps" />
    <!-- 输出格式:d%表示时间格式,%thread表示运行线程,%-5level表示缩进5位显示级别,%logger{50} - %msg表示哪一个类输出的信息,%n为换行 -->
    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" />
    <!-- appender:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名 -->
    <!-- 控制台输出日志设置 -->
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder:既对日志进行格式化,还复制将日志输出到相应的载体中 -->
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!-- DEBUG日志设置 -->
    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${log.filePath}/debug.log</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 文件名称 -->
            <fileNamePattern>
                ${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz
            </fileNamePattern>
            <!-- 文件最大保存时间天数 -->
            <maxHistory>
                ${log.maxHistory}
            </maxHistory>
        </rollingPolicy>
        <!-- encoder:既对日志进行格式化,还复制将日志输出到相应的载体中 -->
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <!-- 级别过滤器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    
    <!-- ERROR日志设置 -->
    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${log.filePath}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 文件名称 -->
            <fileNamePattern>
                ${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz
            </fileNamePattern>
            <!-- 文件最大保存时间天数 -->
            <maxHistory>
                ${log.maxHistory}
            </maxHistory>
        </rollingPolicy>
        <!-- encoder:既对日志进行格式化,还复制将日志输出到相应的载体中 -->
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <!-- 级别过滤器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    
    <!-- INFO日志设置 -->
    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 文件路径 -->
        <file>${log.filePath}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 文件名称 -->
            <fileNamePattern>
                ${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz
            </fileNamePattern>
            <!-- 文件最大保存时间天数 -->
            
            <maxHistory>
                ${log.maxHistory}
            </maxHistory>
        </rollingPolicy>
        <!-- encoder:既对日志进行格式化,还复制将日志输出到相应的载体中 -->
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <!-- 级别过滤器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <logger name="com.uuunl.o2o" level="${log.level}" additivity="true">
        <appender-ref ref="debugAppender"/>
        <appender-ref ref="infoAppender"/>
        <appender-ref ref="errorAppender"/>
    </logger>
    <root level="INFO">
        <appender-ref ref="consoleAppender"/>
    </root>

</configuration>





以上是关于7.Logback主要标签的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试在android studio上创建标签片段

如何通过代码设置片段标签?

片段的布局被活动的工具栏/标签布局覆盖

SnippetsLab for Mac 1.9 中文共享版 – 强大的代码收藏管理工具

Android中切换标签片段之间的延迟

Android - 片段中的联系人选择器