Skip to content

eae01cfcfb37ffa162b8e9da203bf632_MD5 log4j在早一些的项目常用,现在主要用Logback. 419bccbdab72660875fbd1c0a7f8a475_MD5 26cdd3682fb72ac2d106cccfe7c30e09_MD5 我们会使用slf4j的接口,但是我们要知道底层是用的Logback.

快速入门

9efd4143dff135f9cdff0994b99d9531_MD5 第一句话中,传的LogTest表示log对象要记录的是哪一个类中的日志. private static final logger log = LoggerFactory.getLogger(LogTest.class); 配置文件:(logback.xml)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度  %logger{50}: 最长50个字符(超出.切割)  %msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
放到/resource目录下.(所有配置文件都是如此) 注意要选这个logger e2e97b0f979af43e56028362dad0b082_MD5 0a54d46e31f32cfa202f35baa120338d_MD5 3e90cdb4beef3cb254c546c93703a160_MD5 时间- 线程名 - 日志级别 xml修改一下就能停止输出日志: d8c6ed244a95f02116d5b9b6ea8963d9_MD5

配置

a74dc96eb5f285ec5747349869130479_MD5 全部配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%logger显示日志记录器的名称, %msg表示日志消息,%n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
        </encoder>
    </appender>

    <!-- 系统文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件输出的文件名, %i表示序号 -->
            <FileNamePattern>C:\code\JavaLearning\JavaWeb\item\tlias\tlias-web-management/tlias-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <!-- 最多保留的历史日志文件数量 -->
            <MaxHistory>30</MaxHistory>
            <!-- 最大文件大小,超过这个大小会触发滚动到新文件,默认为 10MB -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level表示级别从左显示5个字符宽度,%msg表示日志消息,%n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="ALL">
        <appender-ref ref="STDOUT" /><!-- 这里的STDOUT就是上面定义的appender -->
        <appender-ref ref="FILE" />
    </root>
</configuration>

日志级别

afdee11a915f1904e1702f53ecd046bb_MD5 ed543775f43ded13d49a2b05309b91a3_MD5 简化日志的定义: d59ee81de89fe1030947e30d7b568aca_MD5 占位符式的输出方式: 73a27dd79966652a7bc31e562ba054b7_MD5 (ps:lombok偶尔有bug,导致符号认不出来,解决办法: 6ccce92ae3d02effde5c4d04e0258107_MD5 ) 如果日志输出太多,可以把日志等级设为info 接下来可见mysql - 多表